Closed seokbangguri closed 3 months ago
저도 DFS로 접근해서 풀었습니다.
해당 문제는 통로를 통해 특정 인덱스에 도달하는지 판단만 하면 되는 간단한 문제라 DFS도 괜찮다고 생각했어요 (●'◡'●)
이번주도 수고 많으셨습니다~
암호생성기(커밋에는 쇠막대기 자르기 코드라고 되어있음)에서 deque를 사용하면 시간 복잡도를 아~~~~주 약간 줄일 수 있음
원래 코드 복잡도:
deque 버전 복잡도:
3N 과 2N은 BigO에서 둘다 N이지만 deque가 아주 약간 더 빠름
deque버전:
from collections import deque
def password(numbers: list):
q = deque(numbers)
while True:
for i in range(1, 6):
num = q.popleft() - i
if num <= 0:
q.append(0)
return list(q)
q.append(num)
T = 10
for test_case in range(1, T + 1):
t = int(input())
input_list = list(map(int, input().split()))
result = password(input_list)
print(f'#{t} {" ".join(map(str, result))}')
ladder1 및 미로1
ladder1(swea 1225)
미로1(swea 1226)
한마디
+++추가
제가 미로 문제를 DFS로 풀었는데 07/26 BFS를 배우니 BFS로 푸는게 맞는 것 같습니다..ㅜㅜ