Programmers - 해시 > 완주하지 못한 선수
내 풀이
해시를 써서 풀려고 했지만 도저히 생각이 나지 않아 sort로 풀었다. 그래서 맞게 푼건지 모르겠다.
사실 sort로 초반에 풀려고 했었는데 런타임 에러가 나 다시 고민했는데 해결이 되었다. 다음부터는 틀린풀이도 같이 적어놓아야겠다. sort로 풀면 로직은 간단하다.
- 문자열을 기준으로 participant, completion을 정렬
- participant[i], completion[i]를 비교
function solution(participant, completion) {
const total = participant.length;
var answer = "";
participant.sort();
completion.sort();
for (let i = 0; i < total; i++) {
if (participant[i] !== completion[i]) {
answer = participant[i];
return answer;
}
}
}
모범답안
해시로 푼 문제를 보려했는데 대부분이 sort로 풀었다. 내 풀이와 너무 똑같았다.
function solution(participant, completion) {
participant.sort();
completion.sort();
for (let i in participant) {
if (participant[i] !== completion[i]) return participant[i];
}
}
내 풀이와 차이점
let i = 0; i < participant.length; i++
를 쓰지않고 for...in을 사용하였다. 하지만 for in을 사용하게 되면 반복할 때마다 재선언을 하므로 비효율적이다.
얻어갈 부분
for in을 object가 아닌 array도 사용할 수 있다는 점을 알았지만 크게 쓸모있을 것 같진 않다.
Author And Source
이 문제에 관하여(Programmers - 해시 > 완주하지 못한 선수), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@singco/Programmers-해시-완주하지-못한-선수저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)