프로그래머스 - 깊이/너비 우선 탐색(DFS/BFS)
- Point. 그래프 문제인 이유 : 한 개의 알파벳만 달라 다음에 올 수 있는 단어를 방문하여 target값을 찾는다
- 방문한(pop)한 원소 temp가 방문할 수 있는 값은 temp와 한 개의 알파벳만 다른 words 원소 값이다.
from collections import deque
def solution(begin, target, words):
answer = 0 # 변환할 수 없는 경우 0 return
queue = deque()
for i in words: # 한 개의 알파벳만 다를 경우
count = 0
for j in range(len(begin)):
if begin[j] != i[j]:
count+=1
if count == 1:
queue.append([i,0])
words.remove(i)
while queue:
temp, idx = queue.popleft()
idx += 1
if temp == target: # 변환이 가능한 경우 몇단계인지 저장
answer = idx
else:
for i in words:
count = 0
for j in range(len(begin)):
if temp[j] != i[j]:
count+=1
if count == 1:
queue.append([i,idx])
words.remove(i)
return answer
# 문자열을 정수로 바꾸기
def solution(s):
return int(s)
# 자릿수 더하기
- Point. 문자열로 변환해 한자리씩 들고온 후, 다시 정수형으로 변환해 더해준다
def solution(n):
answer = 0
for i in str(n):
answer+=int(i)
return answer
# 정수 내림차순으로 배치하기
- Tip. 리스트 합쳐서 하나의 문자열로 바꾸는 함수 : '구분자'.join(리스트)
def solution(n):
answer = ""
n_list = list(str(n))
n_list.sort(reverse=True)
for i in n_list:
answer+=i
return int(answer)
# return int("".join(n_list))
반응형
'알고리즘 > programmers' 카테고리의 다른 글
[ 프로그래머스 / 파이썬 ] 프로그래머스 LEVEL 1 풀이 (0) | 2021.04.15 |
---|---|
[ 프로그래머스 / 파이썬 ] 여행경로 - DFS/BFS (0) | 2021.04.12 |
20210407_코테공부 (0) | 2021.04.07 |
[ 프로그래머스 / 파이썬 ] 주식가격 (0) | 2021.03.31 |
20210319_코테공부 (0) | 2021.03.19 |