728x90
반응형
1. 문제 설명
2. 풀이과정
해당 문제는 각 스킬트리에서 선행 스킬이 있다면 순서를 딕셔너리로 저장해 둔 다음, 저장한 순서를 선행 스킬 순서와 비교하여 순서를 위반하는지 확인하면 해결할 수 있는 문제이다.
- 스킬트리 배열에서 각 스킬트리를 하나씩 추출한다. for i in skill_trees
- 스킬트리에서 선행 스킬을 저장할 딕셔너리를 생성한다. d = {}
- 순서를 나타내줄 변수를 생성하고 초기화한다. num = 0
- 추출한 스킬트리의 각 스킬을 하나씩 추출하여 for j in i
- 만약 추출한 스킬이 선형 스킬에 있는 스킬이라면 if (j in skill)
- 순서를 key로 하고 해당 스킬을 value로 하여 딕셔너리에 저장한다. d[num] = j
- 그리고 순서를 다음 순서로 넘겨준다. num += 1
- 스킬트리의 모든 스킬을 탐색했다면 무조건 가능한 스킬이라고 가정한다. answer += 1
- 저장한 딕셔너리를 앞 순서부터 확인하며 for j in d
- 만약 스킬트리의 스킬 순서가 선행 스킬 순서를 위반했다면 if (d[j] != skill[j])
- 불가능한 스킬이다. answer -= 1
- 불가능한 스킬로 판별되었으므로 판별을 종료한다. break
반응형
3. 소스코드
def solution(skill, skill_trees):
answer = 0
for i in skill_trees:
d = {}
num = 0
for j in i:
if (j in skill):
d[num] = j
num += 1
answer += 1
for j in d:
if (d[j] != skill[j]):
answer -= 1
break
return answer
728x90
반응형
'프로그래머스 > Python' 카테고리의 다른 글
[프로그래머스] 뒤에 있는 큰 수 찾기 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 (0) | 2023.08.28 |
---|---|
[프로그래머스] 모음사전 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 (0) | 2023.08.26 |
[프로그래머스] 방문 길이 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 (0) | 2023.08.21 |
[프로그래머스] 게임 맵 최단거리 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 (0) | 2023.08.20 |
[프로그래머스] 주식가격 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 (0) | 2023.08.18 |
[프로그래머스] 땅따먹기 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 (0) | 2023.08.17 |
[프로그래머스] 로또의 최고 순위와 최저 순위 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 (0) | 2023.08.16 |
[프로그래머스] 단어 변환 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 (0) | 2023.08.15 |