Link
문제
풀이
(1)
function solution(cards1, cards2, goal) {
let answer = 'Yes';
let limit = goal.length;
let idx = 0;
let one = 0;
let two = 0;
while (idx < limit) {
if (cards1[one] !== goal[idx] && cards2[two] !== goal[idx]) {
answer = 'No'
break;
}
if (cards1[one] === goal[idx]) one += 1;
if (cards2[two] === goal[idx]) two += 1;
idx += 1;
}
return answer;
}
(2)
function solution(cards1, cards2, goal) {
let one = 0, two = 0;
for (let word of goal) {
if (one < cards1.length && cards1[one] === word) {
one++;
} else if (two < cards2.length && cards2[two] === word) {
two++;
} else {
return "No";
}
}
return "Yes";
}
간단 해설
풀이 1의 문제점 : 배열 인덱스 초과 가능성
one과 two가 cards1.length 또는 cards2.length보다 커질 경우, cards1[one] 또는 cards2[two]를 접근하면 undefined와 비교하게 됩니다.
예를 들어 cards1 = ["i", "drink", "water"]이고 goal = ["i", "want", "to", "drink", "water"]인 경우:
- cards1[3]에 접근하려고 하면 undefined가 되고, 이후 비교에서 의도하지 않은 동작을 할 수 있습니다.
'알고리즘 > 문제' 카테고리의 다른 글
[프로그래머스 | Lv. 1 | JavaScript] 폰켓몬 (1) | 2025.02.02 |
---|---|
[프로그래머스 | Lv. 1 | JavaScript] 추억 점수 (0) | 2025.02.01 |
[프로그래머스 | Lv. 1 | JavaScript] [1차] 비밀지도 (0) | 2025.01.29 |
[프로그래머스 | Lv. 1 | JavaScript] 명예의 전당 (0) | 2025.01.27 |
[프로그래머스 | Lv. 1 | JavaScript] 콜라 문제 (0) | 2025.01.24 |
※ 쿠팡 파트너스 활동을 통해 일정액의 수수료를 제공받을 수 있습니다.