728x90
[문제]
[풀이코드]
function solution(cards1, cards2, goal) {
var answer = '';
let cardanswer = [];
for(let i = 0; i < goal.length; i++)
{
if(cards1[0] == goal[i])
cards1 = cards1.slice(1, cards1.length);
else if(cards2[0] == goal[i])
cards2 = cards2.slice(1, cards2.length);
else
return answer = 'No';
}
return answer = 'Yes';
}
[해설]
우선 조건은 2가지가있다.
1. 카드뭉치 두가지가 있고, 카드를 뽑는다.
2. 두 카드뭉치중 첫번째 카드만 뽑을 수 있고, 뽑는 카드뭉치는 자유이다. 이것을 이용하여 목표 단어와 일치하면 Yes, 아니면 No를 출력하시오.
위의 글이 해당하는 조건이다.
이 조건을 이용하여 우리는 문제를 풀 것이다. 우선 goal 까지 단어를 만들어야하기 때문에 for문으로 goal의 length 길이 까지 반복문을 돌려준다. 그리고 두카드뭉치중 첫번째 카드를 뽑기 위해 cards1과 cards2중 0번째를 가져온다. 해당 0번째가 goal의 i와 일치하면 해당하는 카드뭉치의 카드를 제거해준다.
위와 같은 방법으로 goal의 length까지 다 돈다면 조건과 같으므로 Yes를 반환, 중간에 걸리는 부분이 있다면 No를 반환해 주는것으로 문제를 해결하였다.
'코딩 > 코딩테스트' 카테고리의 다른 글
[프로그래머스/JS] 소수 만들기 (0) | 2024.06.20 |
---|---|
[프로그래머스/JS] 과일장수 (0) | 2024.06.18 |
[프로그래머스/JS] 2016년 (0) | 2024.06.13 |
[프로그래머스/JS] 명예의 전당(1) (0) | 2024.06.13 |
[프로그래머스/JS] 콜라 문제 (0) | 2024.06.11 |