본문 바로가기
코딩테스트 파이썬/파이썬 프로그래머스 2단계

스킬트리

by 세용용용용 2023. 7. 28.

코딩테스트 연습 - 스킬트리 | 프로그래머스 스쿨 (programmers.co.kr)

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

나의 코드

def solution(skill, skill_trees):
    answer = 0

    #스킬트리 for문 돌림
    for i in skill_trees:
        skill_set = list(i) #스킬 트리
        skill_sq = list(skill) #스킬 찍는 순서
        for j in i:
           
            if j in skill_sq:
                #스킬트리 순서와 스킬 찍는 순서가 맞지 않으면 break
                if skill_sq[0] != j:
                    break

                #스킬트리 순서와 스킬 찍는 순서가 맞으면
                elif skill_sq[0] == j:
                    #스킬트리 pop, 스킬순서도 pop해줌
                    skill_sq.pop(0)
                    skill_set.pop(0)
            # 스킬찍는 순서와 상관없는 스킬이면 pop해줌
            else:
                skill_set.pop(0)
        #최종적으로 스킬트리 스킬을 다 찍었으면 answer+=1 증감시켜줌
        if len(skill_set) == 0:
            answer+=1
    #print(answer)

    return answer
solution("CBD", ["BACDE", "CBADF", "AECB", "BDA"])

 

다른 코드

def solution(skill, skill_tress):
    answer = 0
    for i in skill_tress:
        skill_check = ''
        for j in i:
            #skill에 있는 스킬이면 skill_check에 넣어준다
            if j in skill:
                skill_check+=j
       
        #skill_check와 skill_check의 길이만큼의 skill이 같으면 answer증감
        if skill_check == skill[:len(skill_check)]:
            answer+=1
    #print(answer)
    return answer
solution('CBD', ["BACDE", "CBADF", "AECB", "BDA"])

'코딩테스트 파이썬 > 파이썬 프로그래머스 2단계' 카테고리의 다른 글

[1차] 프렌즈4블록  (0) 2023.08.11
모음 사전  (0) 2023.07.28
게임 맵 최단거리  (0) 2023.07.26
방문 길이  (0) 2023.07.23
땅따먹기  (0) 2023.07.22