728x90

문제

 

풀이

첫 시도 코드

  • 처음에 HashSet으로 코드를 짰으나 테스트 예시 3에서 중복된 참가자를 무시해버리기 때문에 List로 바꾼 코드
  • 참가자 배열을 모두 List로 만들고 완주자 이름을 List에서 remove 하는 방법
  • 정확성 테스트는 통과했지만 효율성 테스트에서 전부 시간초과

 

정답 코드

 

  • HashMap을 이용
  • Map에 참가자와 이름이 중복된 참가자를 위해 value를 명수로 체크 
  • 완주자는 value에서 1 뺌으로써 체크 
  • 완주자 체크 후 value에 1 남은 인원이 완주하지 못한 사람

 


Hash 개념을 오랜만에 접하고 Map은 거의 처음 사용하는 것 같다. 알고리즘 문제 풀이에. 

Hash 알고리즘이 빠르다는 걸 느낄 수 있었고, HashSet, HashMap 등 몇번 써보지 않은 자료구조들을 잘 알아둬야 겠다는 생각이 들었다. 

  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기