오늘의 문제는~
이 문제엿습니다.
이 문제를 해결하기 전에 다섯 문제 정도를 떠돌다가 다 안 풀려서.. 이걸로 정착햇어요...
솔직히 이것도 쉽진 않았구, 요즘은 자료 구조를 활용하는 코딩테스트를 많이 풀려고 하고, 정답률이 낮은 걸 풀려고 하니까
시간이 더 걸리고 잘 안 풀리는 것 같습니닷.
function solution(participant, completion) {
var answer = '';
completion.sort()
participant.sort()
for(let i=0; i<participant.length; i++) {
if(participant[i] !== completion[i]) return participant[i]
}
for(let j=0; j<participant.length; j++) {
if(!completion.includes(participant[j])) answer = participant[j]
}
return answer;
}
코드를 어찌저찌 짰는데 계속 안 돼서 살짝 구글링을 했더니 6번째 줄에서 return 을 써야 하더라구요.
근데 전!!!!!!!!!!!! 왜 return 을 써야 하는지 도무지 이해가 안 되었어요...
이건 지피티가 추천해준 코드입니닷.
이것도 정답 처리로 해주던데 이렇게 되면 첫 번째 완주 실패자만 알 수 있는 거 아닌가요?!...........
그럼 두 번째 완주 실패자는 어떻게 처리가 되나요.. 라고 생각했는데
문제에서 한 명 빼고 완주한다는 조건이 주어져 있었네요!...
이러면 납득이 갑니닷... 하하.. 이래서 문제를 꼼꼼하게 읽어야 한다고 생각해요...
그래서 위의 제 코드에서도 두 번째 for 문은 지웠습니닷.... (애초에 왜 넣었을까요???)
function solution(participant, completion) {
completion.sort();
participant.sort();
for (let i = 0; i < participant.length; i++) {
if (participant[i] !== completion[i]) {
return participant[i]; // 첫 번째 완주 실패자 반환
}
}
}
뭔가 리턴이라는 단어 하나로 코드가 완전 틀리기도 하고, 맞을 수도 있다는 게 신기합니다!
다음 번에 또 해시 관련된 문제를 풀어봐야겟어요!
'레쭈고 코테' 카테고리의 다른 글
코딩 테스트 - 57 (0) | 2025.01.12 |
---|---|
코딩 테스트 - 55 (0) | 2025.01.07 |
코딩 테스트 - 54 (0) | 2025.01.06 |
코딩 테스트 - 53 (0) | 2025.01.05 |
코딩 테스트 - 52 (0) | 2025.01.03 |