📄 문제
🔍 문제 접근
❓ 카드 뭉치는 서로 다른 카드들로 구성되어 있다
❓ 카드 순서대로 문장을 구성해야한다 (어느 카드 뭉치든 상관 없음)
💡 goal
의 단어와 일치하면 원소를 제거하여 항상 배열의 첫 번째 값만 비교하면 쉽지 않을까?
📝 문제 풀이
- 매개변수 재할당을 피하기 위해
slice
로 배열을 복사하여 사용 - 카드를 찾지 못했을 경우 빠르게
return
할 수 있도록for문
사용 - card1에서 찾으면 card2를 확인할 필요가 없으므로
continue
사용
function solution(cards1, cards2, goal) {
const _cards1 = cards1.slice();
const _cards2 = cards2.slice();
for (let i = 0; i < goal.length; i++) {
const findCard1 = goal[i] === _cards1[0];
const findCard2 = goal[i] === _cards2[0];
if (!findCard1 && !findCard2) {
return 'No';
}
if (findCard1) {
_cards1.shift();
continue;
}
if (findCard2) {
_cards2.shift();
}
}
return 'Yes';
}
'코딩테스트' 카테고리의 다른 글
[프로그래머스/Javascript] 올바른 괄호 (0) | 2023.07.09 |
---|---|
[프로그래머스/Javascript] 영어 끝말잇기 (0) | 2023.07.08 |
[프로그래머스/Javascript] 덧칠하기 (0) | 2023.07.02 |
[프로그래머스/Javascript] 실패율 (0) | 2023.06.28 |
[프로그래머스/Javascript] 과일 장수 (0) | 2023.06.22 |