문제
풀이
사실 이 문제를 풀면서 막연히 중복된 값을 제거한 상태에서 비교해야겠다는 생각만으로 Set()함수 등을 사용해서 요리저리(?) 풀었지만 결과는 에러와 undefined로 돌아왔다.. 그래서 차근차근 풀어본 결과 sort() 메소드를 사용해서 풀 수도 있다는 것을 알았다.
1. sort()
participant와 completion의 각각의 배열의 값을 정렬시킨다. (서로 비교하기 위함)
2. for
for문을 돌려 정렬된 각각의 배열의 인덱스의 값이 같지 않으면(완주 못 함) 완주 못한 선수의 이름을 반환한다.
function solution(participant, completion) { participant.sort() completion.sort() for(let i=0; i<participant.length; i++){ if(participant[i] !== completion[i]) return participant[i] } }
* 주의
이번 문제를 풀면서 어처구니 없는 실수를 했다.
바로 연산자 실수였다! JS에서는 일치할때 쓰는 비교 연산자인 ===와 헷갈려서 일치하지 않을때를 !===를 사용했던 것이다. 다음번에는 실수하지 않기를!!
=== 는 타입까지 같은지 비교해 주는 연산자임!
느낀점
사실 sort()가 이 문제의 확실한 힌트였다!
내 힘으로 풀고 싶었지만 감이 도저히 안 잡혀 '질문하기'코너에 가서 다른 분들의 글을 살짝 참고하다 sort()메소드를 발견한 후 이 힌트 조각을 가지고 문제를 풀었던지라 뭔가 아! 하는 짜릿함은 별로 없었던 것 같아 아쉬웠다ㅠㅠ 다음 문제를 풀때는 짜릿함을 한번 느껴보고 싶기도 하다 ㅎㅎ 앞으로도 꾸준히 !!
'2025 코딩 테스트' 카테고리의 다른 글
[ 프로그래머스 ] JS - 예산 (0) | 2025.01.08 |
---|---|
2025 코딩 테스트 - 01 (0) | 2025.01.05 |