[swift] 스킬트리

ohtt-iOS·2021년 1월 28일
0
post-thumbnail

코드는 Swift로 작성하였습니다.
제가 직접 작성한 코드라 최적의 코드가 아닐 수 있음을 알려드립니다. 🐹


문제는 저작권 관련 문제가 있을 수 있어서 적어두지 않았습니다.



✍🏻 생각정리

순서가 중요한 문제.
skilltree 내에서도 skill에 해당하지 않는 알파벳은 신경쓸 필요가 없기 때문에
skill안에 들어있는 알파벳인지 확인하여 저장해주고,
그 순서가 skill과 일치하는지 확인하였다.



👩🏻‍💻 코드

swift


import Foundation

func solution(_ skill:String, _ skill_trees:[String]) -> Int {
    var count = 0
    
    for i in skill_trees {
        var skillCheck = ""
        // 스킬트리들 안에 skill에 들어있는 알파벳이 있으면 skillCheck에 담는다.
        for k in i {
            if skill.contains(k) {
                skillCheck += String(k)
            }
        }
    
    	// skillCheck안에 담긴 길이만큼 skill을 잘라낸다
        let range = skill.index(skill.startIndex, offsetBy: skillCheck.count)
    	
        // 만약에 잘라낸 skill과 skillCheck가 일치한다면
    	// 순서가 맞게 스킬을 배웠다고 생각할 수 있다.
        if skill[..<range] == skillCheck {
            count += 1
        }
    }
    
    return count
}


for 문을 중첩하긴 했지만 문제해서 제시되어있는
skill의 길이와 skill_trees의 개수가 많지 않아서 생각나는대로 풀었다.
다른 분의 풀이를 보니 나처럼 index로 범위를 주지않고,
skill.hasPrefix(skillCheck) 이렇게 풀었더라.

좋은 풀이인 것 같다 ! 아직 배울 게 많다 ~

profile
오뜨 삽질 🔨 블로그

0개의 댓글