레쭈고 코테

코딩 테스트 - 56

정땅미 2025. 1. 8. 12:56

오늘의 문제는~

 

이 문제엿습니다.

이 문제를 해결하기 전에 다섯 문제 정도를 떠돌다가 다 안 풀려서.. 이걸로 정착햇어요...

솔직히 이것도 쉽진 않았구, 요즘은 자료 구조를 활용하는 코딩테스트를 많이 풀려고 하고, 정답률이 낮은 걸 풀려고 하니까

시간이 더 걸리고 잘 안 풀리는 것 같습니닷.

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