일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- react
- CRA
- git autocrlf
- IP주소
- git
- k번째수
- git 명령어
- 가장큰수
- LF
- prettier
- eslint-prettier
- CRLF
- git 개행문자
- 응답코드
- input type password
- 원시값
- expected linebreaks to be 'crlf' but found 'lf' linebreak-style
- REST API
- JadenCase
- 개행문자
- input 안보임
- 퀵정렬
- HTTPS
- password 안보임
- 참조타입
- lazy-load
- eslint
- 프로그래머스
- expected linebreaks to be 'lf' but found 'crlf' linebreak-style
- vscode
Archives
- Today
- Total
우파루파의 개발 기록
[프로그래머스] 완주하지 못한 선수 본문
안녕하세요.
이번 문제는 Hash 개념을 사용해 풀이하는 문제입니다.
프로그래머스 1단계 - 완주하지 못한 선수 입니다.
이번 문제는 Hash를 사용해서 푸는것이 출제자의 의도에 부합하는 것 같습니다. 애초 계열이 Hash로 잡혀있기도 하구요.
저의 정답은 다음과 같습니다.
function solution(participant, completion) {
const data = new Map();
for (const part of participant) {
if (data.has(part)) data.set(part, data.get(part) + 1);
else data.set(part, 1);
}
for (const compl of completion) {
if (data.get(compl) > 1) data.set(compl, data.get(compl) - 1);
else data.delete(compl);
}
return data.keys().next().value;
}
더 깔끔한 방법이 있었을텐데, 아직은 이렇게 단순하게 풀이하는 것밖에 잘 되지 않습니다.
다른 분들의 정답도 보았는데, 훨씬 보기 좋은 코드들이 있더라구요.
훨씬 직관적이고, 저처럼 불필요한 iterator 메서드 호출 작업이 없어서 좋아보입니다.
저는 풀이로 7점을 얻었는데, 이러한 풀이는 몇점인지 궁금합니다.
피드백은 언제나 환영이니 부탁드립니다.
오늘도 읽어주셔서 감사합니다.
'development > 알고리즘' 카테고리의 다른 글
[프로그래머스] 전화번호 목록 (0) | 2022.08.26 |
---|---|
[프로그래머스] 폰켓몬 (0) | 2022.08.24 |
[프로그래머스] 숫자 문자열과 영단어 (1) | 2022.08.23 |
[프로그래머스] 부족한 금액 계산하기 (0) | 2022.08.21 |
[프로그래머스] 성격 유형 검사하기 (0) | 2022.08.21 |