본문 바로가기

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

[lv1] 카드 뭉치

문제

 

내 정답 코드

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를 반환한다.


배운 기술

'프로그래머스 (Swift) > lv 1' 카테고리의 다른 글

[lv1] 추억 점수  (0) 2024.06.12
[lv1] 문자열 나누기  (0) 2024.06.02
[lv1] 기사단원의 무기  (1) 2024.06.02
[lv1] 가장 가까운 같은 글자  (0) 2024.06.02
[lv1] 크기가 작은 부분 문자열  (0) 2024.06.02