Algorithm/Implement

[프로그래머스] Level2/ 스킬트리

정호나 2024. 11. 1. 18:34

 

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

 

프로그래머스

SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프

programmers.co.kr

 

 

 

 

def solution(skill, skill_trees):
    answer = 0
   
    for x in skill_trees:
#        s는 각 스킬트리에 대해 초기화해야함
        s = ''
        
        for y in x:
            
            if y in skill:
                s += y


        if skill[:len(s)] == s:
            answer += 1
    
    
    return answer

 

 

 

입력

skill = "CBD"
skill_trees = ["BACDE", "CBADF", "AECB", "BDA"]

print(solution(skill, skill_trees))  # 예상 출력: 2

 

 

동작 설명

 

s의 길이만큼만 skill의 앞부분과 같은지 비교하고, 같으면 answer + 1

 

  1. "BACDE":
    • s = "BD"
    • skill[:len(s)] == "BD"는 False → 제외
  2. "CBADF":
    • s = "CB"
    • skill[:len(s)] == "CB"는 True → 포함
  3. "AECB":
    • s = "CB"
    • skill[:len(s)] == "CB"는 True → 포함
  4. "BDA":
    • s = "BD"
    • skill[:len(s)] == "BD"는 False → 제외

출력 결과

  • 결과: 2