프로그래머스 (Swift)/lv 1

[lv1] 카드 뭉치

은더기 2024. 5. 29. 22:34

문제

 

내 정답 코드

import Foundation

func solution(_ cards1:[String], _ cards2:[String], _ goal:[String]) -> String {
    var cards1 = cards1
    var cards2 = cards2
    
    for word in goal {
        if cards1.first == word {
            cards1.removeFirst()
            continue
        } else if cards2.first == word {
            cards2.removeFirst()
        } else {
            return "No"
        }
    }
    return "Yes"
}

 

#

1. goal 배열을 반복문을 돌려 앞 문자열부터 확인한다.

2. 카드1, 2의 단어를 활용하고 순차적으로 문장을 만들어야 하기 때문에 first와 removeFirst 방법을 선택했다.

3. goal문자열이 card1, 2 맨 앞에 없으면 순차적으로 문장을 만들 수 없기 때문에 No를 반환한다.

4. 카드의 맨 앞 문자열만 사용하면서 goal문자열 배열을 완성할 수 있으면 Yes를 반환한다.


배운 기술