Algorithm 141

BOJ 13549 숨바꼭질 3 Python3

https://www.acmicpc.net/problem/13549 13549번: 숨바꼭질 3 수빈이는 동생과 숨바꼭질을 하고 있다. 수빈이는 현재 점 N(0 ≤ N ≤ 100,000)에 있고, 동생은 점 K(0 ≤ K ≤ 100,000)에 있다. 수빈이는 걷거나 순간이동을 할 수 있다. 만약, 수빈이의 위치가 X일 때 www.acmicpc.net ※ BFS로 풀면 메모리 초과 나서, 또익스트라로 풂 import heapq import sys input = sys.stdin.readline INF = int(1e9) N, K = map(int, input().rstrip().split()) distance = [INF]*100001 def hide_and_seek(): queue = [] heapq.he..

Algorithm/Baekjoon 2023.07.15

BOJ 1916 최소비용 구하기 Python3

https://www.acmicpc.net/problem/1916 1916번: 최소비용 구하기 첫째 줄에 도시의 개수 N(1 ≤ N ≤ 1,000)이 주어지고 둘째 줄에는 버스의 개수 M(1 ≤ M ≤ 100,000)이 주어진다. 그리고 셋째 줄부터 M+2줄까지 다음과 같은 버스의 정보가 주어진다. 먼저 처음에는 그 www.acmicpc.net import heapq import sys input = sys.stdin.readline INF = int(1e9) N = int(input().rstrip()) M = int(input().rstrip()) graph = [[] for _ in range(N+1)] for _ in range(M): s, e, w = map(int, input().rstrip(..

Algorithm/Baekjoon 2023.07.15

BOJ 11404 플로이드 Python3 - 플로이드 워셜 알고리즘

https://www.acmicpc.net/problem/11404 11404번: 플로이드 첫째 줄에 도시의 개수 n이 주어지고 둘째 줄에는 버스의 개수 m이 주어진다. 그리고 셋째 줄부터 m+2줄까지 다음과 같은 버스의 정보가 주어진다. 먼저 처음에는 그 버스의 출발 도시의 번호가 www.acmicpc.net # 플로이드 워셜 알고리즘 import sys input = sys.stdin.readline n = int(input().rstrip()) m = int(input().rstrip()) INF = int(1e9) graph = [[INF]*(n+1) for _ in range(n+1)] for index in range(1, n+1): graph[index][index] = 0 for _ in ..

Algorithm/Baekjoon 2023.07.15

BOJ 1753 최단경로 Python3 - 다익스트라 알고리즘

https://www.acmicpc.net/problem/1753 1753번: 최단경로 첫째 줄에 정점의 개수 V와 간선의 개수 E가 주어진다. (1 ≤ V ≤ 20,000, 1 ≤ E ≤ 300,000) 모든 정점에는 1부터 V까지 번호가 매겨져 있다고 가정한다. 둘째 줄에는 시작 정점의 번호 K(1 ≤ K ≤ V)가 www.acmicpc.net 다익스트라 알고리즘 그대로 구현 import heapq import sys input = sys.stdin.readline V, E = map(int, input().rstrip().split()) K = int(input().rstrip()) graph = [[] for _ in range(V+1)] for _ in range(E): u, v, w = map..

Algorithm/Baekjoon 2023.07.15

BOJ 13458 시험 감독 Python3

https://www.acmicpc.net/problem/13458 13458번: 시험 감독 첫째 줄에 시험장의 개수 N(1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄에는 각 시험장에 있는 응시자의 수 Ai (1 ≤ Ai ≤ 1,000,000)가 주어진다. 셋째 줄에는 B와 C가 주어진다. (1 ≤ B, C ≤ 1,000,000) www.acmicpc.net import sys input = sys.stdin.readline N = int(input()) candidates = list(map(int, input().rsplit())) main_viewer_ok, sub_viewer_ok = list(map(int, input().rsplit())) viewer_number = 0 for can..

Algorithm/Baekjoon 2023.07.03

BOJ 1463 1로 만들기 Python3

https://www.acmicpc.net/problem/1463 1463번: 1로 만들기 첫째 줄에 1보다 크거나 같고, 106보다 작거나 같은 정수 N이 주어진다. www.acmicpc.net from collections import deque import sys input = sys.stdin.readline X = int(input()) def dfs(): queue = deque() queue.append((X, 0)) while queue: x, cnt = queue.popleft() if x == 1: print(cnt) return if (x % 3) == 0: queue.append((x//3, cnt+1)) if (x % 2) == 0: queue.append((x//2, cnt+1)..

Algorithm/Baekjoon 2023.06.28

BOJ 12100 2048 (Easy) Python3

https://www.acmicpc.net/problem/12100 12100번: 2048 (Easy) 첫째 줄에 보드의 크기 N (1 ≤ N ≤ 20)이 주어진다. 둘째 줄부터 N개의 줄에는 게임판의 초기 상태가 주어진다. 0은 빈 칸을 나타내며, 이외의 값은 모두 블록을 나타낸다. 블록에 쓰여 있는 수는 2 www.acmicpc.net import sys input = sys.stdin.readline N = int(input()) board = [list(map(int, input().split())) for _ in range(N)] result = 0 def deep_copy_board(board): newBoard = [] for i in range(N): elems = [] for j in ..

Algorithm/Baekjoon 2023.06.27

BOJ 1992 쿼드트리 python3

https://www.acmicpc.net/problem/1992 1992번: 쿼드트리 첫째 줄에는 영상의 크기를 나타내는 숫자 N 이 주어진다. N 은 언제나 2의 제곱수로 주어지며, 1 ≤ N ≤ 64의 범위를 가진다. 두 번째 줄부터는 길이 N의 문자열이 N개 들어온다. 각 문자열은 0 또 www.acmicpc.net import sys input = sys.stdin.readline N = int(input()) video = [input().rstrip() for _ in range(N)] result = "" def checkVideo(video, num): global result if num < 2: value = video[0][0] result += value return stdValu..

Algorithm/Baekjoon 2023.06.22
반응형