알고리즘

프로그래머스, 완주하지 못한 선수

giyoung2 2024. 7. 10. 18:51

 

 

 

 

많은 분들이 처음에 떠올렸을 것 같기도 하고 저 또한 처음에 딱 떠올랐던 방법인데

 

아마도 대부분 participant의 모든 값과 completion의 모든 값을 비교하여

participant에는 있지만 completion에는 없는 값

반환하는 방법으로 많이들 떠올리셨을 것 같은데

 

틀린 방법은 아니지만 이 문제에 해시라고 태그가 되어있는 만큼

Hash함수를 이용하여 문제를 푸는 것이 문제의 요구에 맞는 것이 아닐까 싶습니다.

 

 

아래는 제가 작성한 코드입니다!~

 

 

이번 문제에서 중요한 핵심은 HashMap을 이용하여

선언된 변수에다가

 

 

participant 배열의 각 값들을 할당한 값들을 map에 넣고

completion배열도 똑같이 map에 넣어서 겹치는 값들을 하나씩 지워가는 것인데요

 

 

자세히 설명해보자면,

 

 

participant의 값들을 추가했을 때 이미 그 값이 있다면 그대로 그 값을 반환하고

없다면 기본값인 0에다가 1을 더한 1을 반환하게 하고나서

 

completion의 값들을 처음부터 끝까지 순회하면서 기존에 추가되어있던 값들을

하나씩 줄여가는 것입니다.

 

 

문제에서는 전체 참가자 중 한 명만 완주를 하지 못 한다고 했습니다.

 

 

따라서, map변수의 값 중에서 1인 값은 1개밖에 없게 되고 1이라는 값을 가진

1개의 name값이 전체 참가자 중 완주하지 못 한 유일한 한 사람이 되겠습니다~~

 

 

 

'알고리즘' 카테고리의 다른 글

LEETCODE, Minimum Number  (0) 2024.07.10
LEETCODE, Valid Parenthesis  (0) 2024.07.10
프로그래머스, 같은 숫자는 싫어  (0) 2024.07.10
프로그래머스, 폰켓몬  (0) 2024.07.10
LEETCODE, Count Pairs Whose Sum is Less than Target  (0) 2024.07.10