나의 풀이
function solution(participant, completion) {
var answer = '';
participant.sort();
completion.sort();
for (var i= 0; i < participant.length; i++) {
if (participant[i] === completion[i]){
} else {
answer = participant[i];
return answer;
}
}
return answer;
}
떠오른 생각_
1. 두 리스트 participant와 completion을 오름차순이든 내림차순이든 같은 방식으로 정렬한다.
2. loop를 돌려 같은 번째 인덱스끼리 비교한다.
3. 같은 인덱스끼리 비교했을 때 같은 값이 나오지 않으면 그 인덱스의 값이 participant에만 있고 completion에는 없기 때문에 그 값이 정답이다.
다른 분들 풀이
귀찮더라도 for (let i = 0; i< arr.length; i++)식으로 씁시다. for in 은 끝까지 다 돌기 때문에 비효율적입니다.
이분은 pop을 써서 한결 코드가 간결해졌다.
const solution = (p, c) => {
p.sort()
c.sort()
while (p.length) {
let pp = p.pop()
if (pp !== c.pop()) return pp
}
}
'CS > 알고리즘' 카테고리의 다른 글
종이접기 [프로그래머스] 실패 (0) | 2020.07.14 |
---|---|
탑 _프로그래머스 (0) | 2020.05.06 |
k번째수 (0) | 2020.05.04 |
완전탐색 모의고사 수포자 / '%'를 쓸줄아느냐. (0) | 2020.05.04 |
크레인 인형뽑기 게임 (0) | 2020.04.24 |