반응형
안녕하세요. 개발 중인 정주입니다.
오늘은 "프로그래머스(Lv.2) - 스킬트리" 문제를 풀었습니다.
Github
문제 링크
풀이
이번 문제는 문자열 문제입니다.
1. skill_trees의 스킬들에서 input으로 주어지는 skill을 제외한 문자열을 지워줍니다. 이 문자열을 skills라고 하겠습니다.
2. input skill이 skills를 prefix로 갖는지 체크합니다.
3. prefix로 갖는다면 +1을 해줍니다.
저는 처음에 하나씩 카운트를 하며 스킬의 순서를 셌는데요.
통과 후 다른 분의 prefix를 이용해 코드를 보고 감탄을 했습니다.
감탄만 하지 말고 실력이 늘어야 할텐데요 ㅠㅠ
한 줄 코드는 가독성이 별로라고 생각되어 최대한 가독성도 챙기도록 코드를 작성했습니다.
전체 코드
import Foundation
func solution(_ skill:String, _ skill_trees:[String]) -> Int {
let result = skill_trees.filter {
let skills = $0.filter { skill.contains($0) }.map { String($0) }.joined()
return skill.hasPrefix(skills)
}.count
return result
}
아직은 초보 개발자입니다.
더 효율적인 코드 훈수 환영합니다!
공감과 댓글 부탁드립니다.
반응형