728x90
[Level 1] 카드 뭉치
구분
코딩테스트연습 > 연습문제
풀이 요약
두 개의 카드 더미 (cards1, cardd2)를 가지고 goal 배열을 순서를 유지한 채 만들 수 있으면 “Yes”, 만들 수 없다면 “No”를 반환하는 문제
나의 풀이
function solution(cards1, cards2, goal) {
for(let x of goal){
if(cards1[0]===x){
cards1.shift()
}else if (cards2[0]===x){
cards2.shift()
}else {
return "No"
}
}
return "Yes"
}
프로그래머스 0레벨 문제풀이 때 배웠던 shift() 메서드를 이용하여 풀었습니다.
goal 배열을 돌면서 현재 단어 x가 cards1의 인덱스 0번과 일치한다면 cards1의 첫 번째 단어를 제거합니다.
만약 cards2의 0번째 인덱스에 해당하는 단어라면 cards2의 첫 번째 단어를 제거합니다.
예를 들어,
goal ["i", "want", "to", "drink", "water"]
cards1 ["i", "water", "drink"]
cards2 ["want", "to"] 이렇게 있을 때,
goal의 현재 단어가 cards1의 0번째 인덱스와 일치하기 때문에 shift로 제거하면 cards1 ["water", "drink"] 이 됩니다.
또 want는 cards2에 있기 때문에 shift로 cards2의 0번째 인덱스를 지우면 cards2 ["to"]가 됩니다.
이렇게 반복해서 goal의 현재 단어가 drink가 됐을 때, drink는 cards1의 0번째 인덱스에도 없고 cards2의 0번째 인덱스에도 없기 때문에 No가 됩니다.
728x90
'코테 > 프로그래머스' 카테고리의 다른 글
[프로그래머스] 내적 (0) | 2024.10.16 |
---|---|
[프로그래머스] 서울에서 김서방 찾기 (0) | 2024.10.13 |
[프로그래머스] x만큼 간격이 있는 n개의 숫자 (0) | 2024.10.13 |
[프로그래머스] 폰켓몬 (0) | 2024.08.01 |
[프로그래머스] 2016년 (0) | 2024.07.29 |