Programmers: 스킬트리

이원희·2021년 3월 2일
0

📝 PS

목록 보기
59/65
post-thumbnail

문제 풀이

skill을 Character 배열로 변환한 후 사용했다.
주어진 skill tree가 가능한지 확인하기 위해 check()를 사용했다.
어디든 skill이 순서를 지키면서 tree에 들어가 있으면 되므로 skill의 index를 가지고 확인했다.

func solution(_ skill: String, _ skill_trees: [String]) -> Int {
    var skillCharacter: [Character] = []
    for character in skill {
        skillCharacter.append(character)
    }
    
    var answer = 0
    for tree in skill_trees {
        if check(skillCharacter, tree) {
            answer += 1
        }
    }
    return answer
}

func check(_ skill: [Character], _ checkSkill: String) -> Bool {
    var skillIndex = skill.startIndex
    for check in checkSkill {
        if !skill.contains(check) {
            continue
        }
        if skill[skillIndex] != check {
            return false
        }
        skillIndex += 1
    }
    return true
}

프로그래머스

0개의 댓글