You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
currentSkill ≠ targetSkill (현재 수강하고자하는 스킬이 선수강되어야할 스킬이 아닌 경우)
s가 skill에 포함된다면
선수강을 건너띄고 수강하는 경우이므로 허용될 수 없는 스킬트리이다. 따라서 available 변수의 값을 false로 바꾼 뒤 break로 반복문을 탈출한다.
s가 skill에 포함되지 않는다면
순서에 없는 다른 스킬(힐링 등)은 순서에 상관없이 배울 수 있기 때문에 아무런 조치를 취하지 않는다.
currentSkill == targetSkill (현재 수강하고자하는 스킬이 선수강되어야할 스킬과 같은 경우)
선수강 스킬 스택의 첫번째 원소를 꺼내어 다음 targetSkill로 배정해준다.
위 3번 로직을 실행한 후 available 변수의 값이 true라면 가능한 스킬트리를 의미하는 것이므로 sum에 1을 더해준다.
💬 풀이
func solution(skill:String, skill_trees:[String])->Int{varsum=0
for tree in skill_trees {varpreSkillset=Array(skill).map{String($0)}vartargetSkill= preSkillset.removeFirst()varavailable= true
for currentSkill in tree {
if preSkillset.contains(String(currentSkill)){
available = false
break
}
if String(currentSkill)== targetSkill && preSkillset.count >0{
targetSkill = preSkillset.removeFirst()}}
sum += available ? 1:0}return sum
}
The text was updated successfully, but these errors were encountered:
💬 문제
스킬트리
💬 Idea
<스택의 원리를 사용하자>
s가 skill에 포함된다면
s가 skill에 포함되지 않는다면
💬 풀이
The text was updated successfully, but these errors were encountered: