목록Algorithm (4)
hmk run dev
이번 문제는 queue 정렬의 기초를 확인하는 문제 같았다 조건문을 통해서 직관적으로 정렬 관련 기능들을 코드로 작성했다 from collections import deque import sys input = sys.stdin.readline T = int(input()) stk = deque([]) for i in range(T): c = input().split() if c[0] == 'push': stk.append(c[1]) elif c[0] == 'pop': if len(stk) > 0: print(stk.popleft()) else: print(-1) elif c[0] == 'empty': if len(stk) == 0: print(1) else: print(0) elif c[0] == 'fr..
www.acmicpc.net/problem/4948 4948번: 베르트랑 공준 베르트랑 공준은 임의의 자연수 n에 대하여, n보다 크고, 2n보다 작거나 같은 소수는 적어도 하나 존재한다는 내용을 담고 있다. 이 명제는 조제프 베르트랑이 1845년에 추측했고, 파프누티 체비쇼 www.acmicpc.net 정답코드 import math def IsPrime(num): #소수인지 판별하는 함수 a = int(math.sqrt(num)) # 루트2 루트3 루트4(2) 루트 5 루트 6 if num == 1: return False else: for i in range(2, a+1): if num % i == 0: return False return True Num_list = list(range(2,24691..
################# # 1을 방문했을 때 2,5,9를 스택에 넣어준다 # 맨처 # 위의 그래프를 예시로 삼아서 인접 리스트 방식으로 표현했습니다! graph = { 1: [2, 5, 9], 2: [1, 3], 3: [2, 4], 4: [3], 5: [1, 6, 8], 6: [5, 7], 7: [6], 8: [5], 9: [1, 10], 10: [9] } # 1. 루트 노드를 스택에 넣는다. # 2. 현재 스택의 노드를 빼서 visited에 추가한다 # 3. 현재 방문한 노드와 인접한 노드 중 방문하지 않은 노드를 스택에 추가한다. # 4. 2부터 반복한다 # 5. 스택이 비면 탐색을 종료한다 def dfs_stack(adjacent_graph, start_node): #그래프, 노드 stac..
DFS = Depth First Search = 깊이 우선 탐색 최대한 깊이 들어가본다 BFS = Breadth First Serch = 넓이 우선 탐색 최대한 넓게 본다 미로를 예로 들면, DFS는 틀린길일 지라도 최대한 깊게 들어가서 길이 없는걸 확인하고 돌아온다. BFS는 끝까지 들어가는게 아니라 확인하고 나서 다른길로 들어간다. www.youtube.com/watch?v=-wsYtm0x3nw&t=301s 컴퓨터에서는 어떻게 쓰일까? 트리라고 불리는 구조를 볼 수 있는데 아래를 보면 쉽게 이해 할 수 있을 것이다. 1. 루트 노드부터시작 2. 현재 방문한 노드를 visited에 추가 3. 현재 방문한 노드와 인접한 노드 중 방문하지 않은 노드에 방문한다 4. 2부터 반복한다FS = Depth Fir..