728x90
문제
풀이
첫 시도 코드
- 처음에 HashSet으로 코드를 짰으나 테스트 예시 3에서 중복된 참가자를 무시해버리기 때문에 List로 바꾼 코드
- 참가자 배열을 모두 List로 만들고 완주자 이름을 List에서 remove 하는 방법
- 정확성 테스트는 통과했지만 효율성 테스트에서 전부 시간초과
정답 코드
- HashMap을 이용
- Map에 참가자와 이름이 중복된 참가자를 위해 value를 명수로 체크
- 완주자는 value에서 1 뺌으로써 체크
- 완주자 체크 후 value에 1 남은 인원이 완주하지 못한 사람
Hash 개념을 오랜만에 접하고 Map은 거의 처음 사용하는 것 같다. 알고리즘 문제 풀이에.
Hash 알고리즘이 빠르다는 걸 느낄 수 있었고, HashSet, HashMap 등 몇번 써보지 않은 자료구조들을 잘 알아둬야 겠다는 생각이 들었다.
'알고리즘 > 프로그래머스' 카테고리의 다른 글
[프로그래머스 - JAVA]정렬 - Level 1 K번째수 (0) | 2020.11.10 |
---|---|
[프로그래머스 - JAVA]탐욕법(Greedy) - Level 1 체육복 (0) | 2020.11.10 |
[프로그래머스 - JAVA]월간 코드 챌린지 - Level 1 3진법 뒤집기 (0) | 2020.11.09 |
[프로그래머스 - JAVA]월간 코드 챌린지 - Level 1 두 개 뽑아서 더하기 (0) | 2020.11.09 |
[프로그래머스 - JAVA]연습문제 - Level 1 x만큼 간격이 있는 n개의 숫자 (0) | 2020.11.08 |
최근댓글