본문 바로가기

전체 글

(171)
[그래프 탐색] 깊이 우선 탐색[DFS], 너비 우선 탐색[BFS] 그래프 탐색 방법 1. 깊이 우선 탐색[DFS (Depth-First Search)] 루트 노드(혹은 다른 임의의 노드)에서 시작해서 다른 분기(branch)로 넘어가기 전에 해당 분기를 완벽하게 탐색하는 방식이다. 스택(선입후출), 재귀함수로 구현한다. sojeong-lululala.tistory.com/5 [BOJ] [Python] 2775번 : 부녀회장이 될테야 간단한 예시를 만들어 작성하면서, 어떻게 문제를 풀어야 할 지 생각했다. 그렇게 떠올린 방법은 '재귀함수 사용' loop = int(input()) #test def people(a, b): global result if(a == 0): return b else: for i.. sojeong-lululala.tistory.com 2. 너비 ..
[BOJ] [Python] 2775번 : 부녀회장이 될테야 간단한 예시를 만들어 작성하면서, 어떻게 문제를 풀어야 할 지 생각했다. 그렇게 떠올린 방법은 '재귀함수 사용' loop = int(input()) #test def people(a, b): global result if(a == 0): return b else: for i in range(1, b+1): tmp = people(a - 1, i) if(tmp != None): result += tmp for i in range(0, loop): k = int(input()) # k층 n = int(input()) # n호 result = 0 people(k, n) print(result) 사실, 이렇게 재귀함수를 사용하면 best 방법은 아니다. 한 번 방문했던 곳은 방문하지 않는 게 좋기 때문이다. p..
[BOJ] [Python] 2839번 : 설탕 배달 num = int(input()) tmp = num // 5 def sugar(num, tmp): if(num % 5 == 0): return num // 5 else: while(tmp != 0): if((num - tmp * 5) % 3 == 0): tmp += (num - tmp * 5) // 3 return tmp else: tmp-= 1 if(num % 3 == 0): return num // 3 else: return - 1 print(sugar(num, tmp))