Closed
Description
💬 문제
💬 Idea
- cards1, cards2 stack을 만든다.
- cards1, cards2의 원소를 차례로 target1,2로 뽑아둔 후 goal을 돌면서 해당 target에 일치할 경우 일치하는 카드 뭉치의 원소를 뽑고 다음 target으로 만들어준다
- 이 때 해당 target과 g가 일치하지 않는다면 카드 뭉치에 없는 카드로 만들어졌거나, 카드 순서가 일치하지 않는다는 것이므로 “No”를 리턴한 후 종료한다.
💬 풀이
func solution(cards1:[String], cards2:[String], goal:[String]) -> String {
var cards1 = cards1.reversed().map({ String($0) })
var cards2 = cards2.reversed().map({ String($0) })
var target1 = cards1.popLast()
var target2 = cards2.popLast()
for g in goal {
if g == target1 {
target1 = cards1.popLast()
} else if g == target2 {
target2 = cards2.popLast()
} else {
return "No"
}
}
return "Yes"
}