Python

백준 1463 파이썬 문제 풀이 : 1로 만들기 문제 링크 https://www.acmicpc.net/problem/1463 1463번: 1로 만들기 첫째 줄에 1보다 크거나 같고, 106보다 작거나 같은 정수 N이 주어진다. www.acmicpc.net 문제 입출력 예시 제출 코드 test = int(input()) num = [0] * (test+1) for i in range(2, test+1): num[i] = num[i-1] + 1 if i % 3 == 0: num[i] = min(num[i], num[i//3]+1) if i % 2 == 0: num[i] = min(num[i], num[i//2] + 1) print(num[test])
백준 1260 파이썬 문제 풀이 : DFS와 BFS 문제 링크 https://www.acmicpc.net/problem/1260 1260번: DFS와 BFS 첫째 줄에 정점의 개수 N(1 ≤ N ≤ 1,000), 간선의 개수 M(1 ≤ M ≤ 10,000), 탐색을 시작할 정점의 번호 V가 주어진다. 다음 M개의 줄에는 간선이 연결하는 두 정점의 번호가 주어진다. 어떤 두 정점 사 www.acmicpc.net 문제 입출력 예시 제출 코드 from collections import deque N, M, V = map(int, input().split()) graph = [[] for i in range(N+1)] visited = [False for i in range(N+1)] result = [] fo..
DFS DFS는 깊이 우선 탐색이라고도 불리며 그래프에서 깊은 부분을 우선적으로 탐색하는 알고리즘이다. DFS는 스택 자료구조를 이용하며, 구체적인 동작은 아래와 같다. 탐색 시작 노드를 스택에 삽입하고 방문 처리를 한다 스택의 최상단 노드에 방문하지 않은 인접한 노드가 하나라도 있으면 그 노드를 스택에 넣고 방문 처리를 한다. 방문하지 않은 노드가 없으면 스택에서 최상단 노드를 꺼낸다. 더 이상 2번의 과정을 수행할 수 없을 때까지 반복한다 # DFS 함수 정의 def dfs(graph, v, visited): # 현재 노드를 방문 처리 visited[v] = True print(v, end=' ') # 현재 노드와 연결된 다른 노드를 재귀적으로 방문 for i in graph[v]: if not vi..
재귀 함수 자기 자신을 다시 호출하는 함수 단순한 형태의 재귀 함수 예제 '재귀 함수를 호출합니다'라는 문자열을 무한히 출력합니다. 어느 정도 출력하다가 최대 재귀 깊이 초가 메시지가 출력됩니다. def recursive_function(): print('재귀 함수를 호출합니다.') recursive_function() recursive_function() 재귀함수를 문제 풀이에서 사용할 때는 재귀 함수의 종료 조건을 반드시 명시해야 한다. 종료 조건을 제대로 명시하지 않으면 함수가 무한히 호출될 수 있다. def recursive_function(i): # 100번째 호출을 했을 때 종료되도록 종료 조건 명시 if i == 100: return print(i, '번째 재귀함수에서', i + 1, '번째..
스택 자료구조 먼저 들어온 데이터가 나중에 나가는 형식의 구조(후입 선출) 입구와 출구가 동일한 형태로 스택을 시각화할 수 있다. stack = [] # 삽입(5) - 삽입(2) - 삽입(3) - 삽입(7) - 삭제() - 삽입(1) - 삽입(4) - 삭제() stack.append(5) stack.append(2) stack.append(3) stack.append(7) stack.pop() stack.append(1) stack.append(4) stack.pop() print(stack) # 최하단 원소부터 출력 print(stack[::-1]) # 최상단 원소부터 출력 큐 자료구조 먼저 들어온 데이터가 처음 나가는 형식의 구조 (선입 선출) 입구와 출구가 일자로 이어져있는 터널형태로 큐를 시각화 ..
Jong_seoung
'Python' 카테고리의 글 목록 (4 Page)