[프로그래머스] 달리기 경주 (Hash 자료 구조를 이용한 문제)

Dodam·2023년 8월 31일
0
post-thumbnail

문제

코딩테스트 연습 Lv.1 - 달리기 경주

JavaScript 코드


문제 풀이

해당 문제는 hash 자료구조를 이용해서 문제를 풀 수 있다.

먼저, players의 name을 key, 해당 index를 value로 초기화 해준다.

다음으로 callings에 대한 반복문을 돌리는데,
초기화 해주었던 hash에 callings에 대한 요소(이름)로 key에 접근해서 value를 currIdx에 담아준다.
그럼 해당 이름의 index를 받아오고, 이름이 불린 앞 사람과 위치를 바꿔야 한다.
앞 사람의 이름을 front라는 변수에 currIdx -1 값을 통해 담아둔다.

그리고 서로의 index 값을 바꿔주고,
hash에 바뀐 index로 서로 바꿔주면서 반복문을 끝까지 돈다.

이렇게 반복문 안에 indexOf를 돌렸을 때는 O(N^2)이지만 hash를 이용해서 O(N)으로 해결해준다.

profile
⏰ Good things take time

0개의 댓글