티스토리 뷰

문제

https://school.programmers.co.kr/learn/courses/30/lessons/49993#fnref1

풀이

  • skill_trees의 값을 하나씩 접근 (skill_tree)
  • skill_tree에 있는 값이 skill에 포함(contain)되면 tree에 저장 (tree에는 skill에 있는 요소만 들어 갈 수 있음)
  • tree와 skill의 값을 비교 순서가 잘못 되면 false 반환, 맞으면 true
  • 개수 확인

전체코드

import Foundation

func solution(_ skill:String, _ skill_trees:[String]) -> Int {
    let skill: [String] = skill.map{ String($0) }
    var result: Int = 0
    for skill_tree in skill_trees {
        var tree: [String] = []
        for char in skill_tree {
            if skill.contains(String(char)) {
                tree.append(String(char))
            }
        }
        if skillCheck(skill, tree) {
            result += 1
        }
    }
    return result
}
func skillCheck(_ skill: [String], _ tree: [String]) -> Bool {
    var sk_Idx: Int = 0
    var tr_Idx: Int = 0
    while sk_Idx < skill.count && tr_Idx < tree.count {
        if skill[sk_Idx] != tree[tr_Idx] {
            return false
        }
        sk_Idx += 1
        tr_Idx += 1
    }
    return true
}
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2026/01   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
글 보관함