728x90
요구사항
participant : 마라톤에 참여한 선수들 배열
completion : 완주한 선수들의 배열
result : 완주하지 못한 선수의 이름 (항상 1명)
주의사항
completion의 길이가 participant보다 1 작다.
이름은 모두 알파벳 소문자이다.
동명이인 존재한다.
코드
function findDidnotFinishedPlayer(participant, completion){
for (let i = 0; i < completion.length; i++){
if(completion[i] != participant[i]){
return participant[i];
}
}
return participant[participant.length-1];
}
function solution(participant, completion) {
participant.sort();
completion.sort();
return findDidnotFinishedPlayer(participant, completion);
}
복잡도
시간복잡도 : sort가 가장 시간이 많이 걸리므로 O(NlogN)
공간복잡도 : 배열을 저장하는 공간 O(N)
아쉬운 점
Map을 써서 풀었으면 더 간단히 풀렸을 것 같다. (O(1)에 풀 수 있지 않을까?)
Map과 hash에 대해 공부해보자.
반응형
'개발공부 > Problem Solving' 카테고리의 다른 글
[프로그래머스 고득점 Kit] 위장 (0) | 2022.01.05 |
---|