Algorithm/programmers

[Python] programmers 스킬트리 - for ~ else구문, pop

patrck_jjh 2021. 11. 10. 20:54

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

 

코딩테스트 연습 - 스킬트리

 

programmers.co.kr

 

 

def solution(skill, skill_trees):
    
    answer = 0

    for skills in skill_trees:
        skill_list = list(skill)

        for s in skills:
            if s in skill:   # - ⓐ
                if s != skill_list.pop(0):  # - ⓑ 
                    break
        else:	# - ⓒ
            answer += 1

    return answer

 

 

ⓐ - skills에서 개별스킬이 skill에 포함되어있을경우

ⓑ - skill의 리스트에서 0번 인덱스를 삭제함과 동시에 이 스킬과 개별 스킬이 다르다면 스킬트리순서 어겼음을 의미

ⓒ - 스킬트리 규칙에 위배되지 않았다면 가능한 스킬트리이므로 answer += 1 수행

 

 

 


 

for ~ else 구문

 

반복문을 끝까지 수행했을 경우 else문의 코드를 실행한다

try ~ except ~ else의 경우 예외가 발생하지 않았을 때 else의 코드를 실행하는 것과 유사하다.

 

 

 

for ~ else 문을 통해 소수를 구하는 코드를 구현해봤다.

 

소수는 2부터 시작하므로 시점을 2로잡았고 99이하의 소수를 구할 것이다

개별 숫자를 2부터 자기자신보다 낮은 숫자로 나누었을 때 나머지가 0이되는 경우(나누어 떨어지는 경우)가 있다면 소수가 아니므로 break을 실행한다

 

break에 걸리지 않았다면 소수이므로 prime 리스트에 append해준다.

 

 

 

 

 

 

'Algorithm > programmers' 카테고리의 다른 글

[Python] programmers 방문 길이- 좌표 이동 구현  (0) 2021.11.10