๐Ÿ—๏ธ Algorithm/๐ŸŸฉ ๋ฐฑ์ค€ 227

๐ŸŸฉ [๋ฐฑ์ค€] [Python] [BFS/DFS] 10026๋ฒˆ_์ ๋ก์ƒ‰์•ฝ

๋ฌธ์ œ https://www.acmicpc.net/problem/10026 10026๋ฒˆ: ์ ๋ก์ƒ‰์•ฝ ์ ๋ก์ƒ‰์•ฝ์€ ๋นจ๊ฐ„์ƒ‰๊ณผ ์ดˆ๋ก์ƒ‰์˜ ์ฐจ์ด๋ฅผ ๊ฑฐ์˜ ๋Š๋ผ์ง€ ๋ชปํ•œ๋‹ค. ๋”ฐ๋ผ์„œ, ์ ๋ก์ƒ‰์•ฝ์ธ ์‚ฌ๋žŒ์ด ๋ณด๋Š” ๊ทธ๋ฆผ์€ ์•„๋‹Œ ์‚ฌ๋žŒ์ด ๋ณด๋Š” ๊ทธ๋ฆผ๊ณผ๋Š” ์ข€ ๋‹ค๋ฅผ ์ˆ˜ ์žˆ๋‹ค. ํฌ๊ธฐ๊ฐ€ N×N์ธ ๊ทธ๋ฆฌ๋“œ์˜ ๊ฐ ์นธ์— R(๋นจ๊ฐ•), G(์ดˆ๋ก) www.acmicpc.net ํ’€์ด BFS๋ฅผ ์ด์šฉํ•œ ํ’€์ด # ๋ฐฑ์ค€ 10026๋ฒˆ ๋ฌธ์ œ - ์ ๋ก์ƒ‰์•ฝ from collections import deque dx, dy = [0,0,-1,1], [1,-1,0,0] n = int(input()) graph = [] for _ in range(n): graph.append(list(map(str, input()))) answer = 0 def bfs(x, y): queue ..

๐ŸŸฉ [๋ฐฑ์ค€] [Python] [BFS/DFS] 4963๋ฒˆ_์„ฌ์˜ ๊ฐœ์ˆ˜

๋ฌธ์ œ https://www.acmicpc.net/problem/4963 4963๋ฒˆ: ์„ฌ์˜ ๊ฐœ์ˆ˜ ์ž…๋ ฅ์€ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ๋‹ค. ๊ฐ ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค์˜ ์ฒซ์งธ ์ค„์—๋Š” ์ง€๋„์˜ ๋„ˆ๋น„ w์™€ ๋†’์ด h๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. w์™€ h๋Š” 50๋ณด๋‹ค ์ž‘๊ฑฐ๋‚˜ ๊ฐ™์€ ์–‘์˜ ์ •์ˆ˜์ด๋‹ค. ๋‘˜์งธ ์ค„๋ถ€ํ„ฐ h๊ฐœ ์ค„์—๋Š” ์ง€๋„ www.acmicpc.net ํ’€์ด # ๋ฐฑ์ค€ 4963๋ฒˆ ๋ฌธ์ œ - ์„ฌ์˜ ๊ฐœ์ˆ˜ from collections import deque dx = [0,0,-1,1,1,-1,1,-1] dy = [1,-1,0,0,1,-1,-1,1] def bfs(graph, x, y): queue = deque() graph[x][y] = 0 queue.append((x, y)) global cnt while queue: x, y = queu..

๐ŸŸฉ [๋ฐฑ์ค€] [Python] [BFS/DFS] 7562๋ฒˆ_๋‚˜์ดํŠธ์˜ ์ด๋™

๋ฌธ์ œ https://www.acmicpc.net/problem/7562 7562๋ฒˆ: ๋‚˜์ดํŠธ์˜ ์ด๋™ ์ฒด์ŠคํŒ ์œ„์— ํ•œ ๋‚˜์ดํŠธ๊ฐ€ ๋†“์—ฌ์ ธ ์žˆ๋‹ค. ๋‚˜์ดํŠธ๊ฐ€ ํ•œ ๋ฒˆ์— ์ด๋™ํ•  ์ˆ˜ ์žˆ๋Š” ์นธ์€ ์•„๋ž˜ ๊ทธ๋ฆผ์— ๋‚˜์™€์žˆ๋‹ค. ๋‚˜์ดํŠธ๊ฐ€ ์ด๋™ํ•˜๋ ค๊ณ  ํ•˜๋Š” ์นธ์ด ์ฃผ์–ด์ง„๋‹ค. ๋‚˜์ดํŠธ๋Š” ๋ช‡ ๋ฒˆ ์›€์ง์ด๋ฉด ์ด ์นธ์œผ๋กœ ์ด๋™ํ•  ์ˆ˜ www.acmicpc.net ํ’€์ด ๋จผ์ € BFS๋กœ ํ’€์—ˆ์„ ๋•Œ ์‹œ๊ฐ„์ดˆ๊ณผ๊ฐ€ ๋‚˜์„œ pypy3๋กœ ํ™•์ธํ•ด๋ดค๋”๋‹ˆ ์„ฑ๊ณตํ•˜์˜€๋‹ค. ์™œ ์‹œ๊ฐ„์ดˆ๊ณผ๊ฐ€ ๋‚ฌ๋Š”์ง€ ๊ณฐ๊ณฐํžˆ ์ƒ๊ฐํ•ด๋ณด๋ฉด์„œ ์‹œ๊ฐ„๋ณต์žก๋„๋ฅผ ๊ณ„์‚ฐํ•ด๋ณด๊ณ  ์—ฐ์‚ฐ์„ ์ตœ์†Œํ™” ์‹œํ‚ค๋„๋ก ์ฝ”๋“œ๋ฅผ ๋ฐ”๊พธ์—ˆ๋‹ค. # ๋ฐฑ์ค€ 7562๋ฒˆ ๋ฌธ์ œ - ๋‚˜์ดํŠธ์˜ ์ด๋™ from collections import deque import sys input = sys.stdin.readline dx = [1,1,-1,-1,2,2,-2,..

๐ŸŸฉ [๋ฐฑ์ค€] [Python] [BFS/DFS] 14502๋ฒˆ_์—ฐ๊ตฌ์†Œ

๋ฌธ์ œ https://www.acmicpc.net/problem/14502 14502๋ฒˆ: ์—ฐ๊ตฌ์†Œ ์ธ์ฒด์— ์น˜๋ช…์ ์ธ ๋ฐ”์ด๋Ÿฌ์Šค๋ฅผ ์—ฐ๊ตฌํ•˜๋˜ ์—ฐ๊ตฌ์†Œ์—์„œ ๋ฐ”์ด๋Ÿฌ์Šค๊ฐ€ ์œ ์ถœ๋˜์—ˆ๋‹ค. ๋‹คํ–‰ํžˆ ๋ฐ”์ด๋Ÿฌ์Šค๋Š” ์•„์ง ํผ์ง€์ง€ ์•Š์•˜๊ณ , ๋ฐ”์ด๋Ÿฌ์Šค์˜ ํ™•์‚ฐ์„ ๋ง‰๊ธฐ ์œ„ํ•ด์„œ ์—ฐ๊ตฌ์†Œ์— ๋ฒฝ์„ ์„ธ์šฐ๋ ค๊ณ  ํ•œ๋‹ค. ์—ฐ๊ตฌ์†Œ๋Š” ํฌ www.acmicpc.net ํ’€์ด # ๋ฐฑ์ค€ 14502๋ฒˆ ๋ฌธ์ œ - ์—ฐ๊ตฌ์†Œ from collections import deque import copy import sys input = sys.stdin.readline n, m = map(int, input().split()) graph = [] dx, dy = [0,0,-1,1], [1,-1,0,0] for _ in range(n): graph.append(list(map(int, i..

๐ŸŸฉ [๋ฐฑ์ค€] [Python] [BFS/DFS] 18352๋ฒˆ_ํŠน์ • ๊ฑฐ๋ฆฌ์˜ ๋„์‹œ ์ฐพ๊ธฐ

๋ฌธ์ œ https://www.acmicpc.net/problem/18352 18352๋ฒˆ: ํŠน์ • ๊ฑฐ๋ฆฌ์˜ ๋„์‹œ ์ฐพ๊ธฐ ์ฒซ์งธ ์ค„์— ๋„์‹œ์˜ ๊ฐœ์ˆ˜ N, ๋„๋กœ์˜ ๊ฐœ์ˆ˜ M, ๊ฑฐ๋ฆฌ ์ •๋ณด K, ์ถœ๋ฐœ ๋„์‹œ์˜ ๋ฒˆํ˜ธ X๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. (2 ≤ N ≤ 300,000, 1 ≤ M ≤ 1,000,000, 1 ≤ K ≤ 300,000, 1 ≤ X ≤ N) ๋‘˜์งธ ์ค„๋ถ€ํ„ฐ M๊ฐœ์˜ ์ค„์— ๊ฑธ์ณ์„œ ๋‘ ๊ฐœ www.acmicpc.net ํ’€์ด # ๋ฐฑ์ค€ 18352๋ฒˆ ๋ฌธ์ œ - ํŠน์ • ๊ฑฐ๋ฆฌ์˜ ๋„์‹œ ์ฐพ๊ธฐ from collections import deque import sys input = sys.stdin.readline n, m, k, x = map(int, input().split()) graph = [[] for _ in range(n+1)] for _ ..

๐ŸŸฉ [๋ฐฑ์ค€] [Python] [Class3] 5430๋ฒˆ_AC

๋ฌธ์ œ https://www.acmicpc.net/problem/5430 5430๋ฒˆ: AC ๊ฐ ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค์— ๋Œ€ํ•ด์„œ, ์ž…๋ ฅ์œผ๋กœ ์ฃผ์–ด์ง„ ์ •์ˆ˜ ๋ฐฐ์—ด์— ํ•จ์ˆ˜๋ฅผ ์ˆ˜ํ–‰ํ•œ ๊ฒฐ๊ณผ๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค. ๋งŒ์•ฝ, ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•œ ๊ฒฝ์šฐ์—๋Š” error๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค. www.acmicpc.net ํ’€์ด from collections import deque t = int(input()) for i in range(t): p = input() n = int(input()) arr = input()[1:-1].split(',') queue = deque(arr) flag = 0 if n == 0: queue = [] for j in p: if j == 'R': flag += 1 elif j == 'D': if len(queue) == 0: pri..

๐ŸŸฉ [๋ฐฑ์ค€] [Python] [Class3] 11403๋ฒˆ_๊ฒฝ๋กœ ์ฐพ๊ธฐ

๋ฌธ์ œ https://www.acmicpc.net/problem/11403 11403๋ฒˆ: ๊ฒฝ๋กœ ์ฐพ๊ธฐ ๊ฐ€์ค‘์น˜ ์—†๋Š” ๋ฐฉํ–ฅ ๊ทธ๋ž˜ํ”„ G๊ฐ€ ์ฃผ์–ด์กŒ์„ ๋•Œ, ๋ชจ๋“  ์ •์  (i, j)์— ๋Œ€ํ•ด์„œ, i์—์„œ j๋กœ ๊ฐ€๋Š” ๊ฒฝ๋กœ๊ฐ€ ์žˆ๋Š”์ง€ ์—†๋Š”์ง€ ๊ตฌํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์‹œ์˜ค. www.acmicpc.net ํ’€์ด ์ด๋ฒˆ ๋ฌธ์ œ๋Š” ํ‘ธ๋Š”๋ฐ ์กฐ๊ธˆ ์ƒ๊ฐ๋„ ๋งŽ์ด ํ•ด๋ณด๊ณ  ์—ฌ๋Ÿฌ๊ฐ€์ง€ ๋ฐฉ๋ฒ•์œผ๋กœ ํ’€์–ด๋ณด๊ณ  ์‹ถ์–ด์„œ ์‹œ๊ฐ„์ด ์˜ค๋ž˜๊ฑธ๋ ธ๋‹ค. ๋˜ํ•œ ํ”Œ๋กœ์ด๋“œ-์›Œ์…œ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์ฒ˜์Œ ์ ‘ํ•ด๋ด์„œ ์ดํ•ดํ•˜๋Š”๋ฐ ์˜ค๋ž˜๊ฑธ๋ฆฐ ๋ถ€๋ถ„๋„ ์žˆ์—ˆ๋‹ค. DFS ๋‚˜ BFS๋กœ๋„ ํ’€์ด๊ฐ€ ๊ฐ€๋Šฅํ•˜์ง€๋งŒ ํ”Œ๋กœ์ด๋“œ-์›Œ์…œ ์•Œ๊ณ ๋ฆฌ์ฆ˜๋„ ์‚ฌ์šฉํ•ด ๋ณด์•˜๋‹ค. DFS๋ฅผ ์ด์šฉํ•œ ํ’€์ด # ๋ฐฑ์ค€ 11403๋ฒˆ ๋ฌธ์ œ - ๊ฒฝ๋กœ ์ฐพ๊ธฐ # DFS n = int(input()) graph = [list(map(int, input().split()..

๐ŸŸฉ [๋ฐฑ์ค€] [Python] [Class3] 11286๋ฒˆ_์ ˆ๋Œ“๊ฐ’ ํž™

๋ฌธ์ œ https://www.acmicpc.net/problem/11286 11286๋ฒˆ: ์ ˆ๋Œ“๊ฐ’ ํž™ ์ฒซ์งธ ์ค„์— ์—ฐ์‚ฐ์˜ ๊ฐœ์ˆ˜ N(1≤N≤100,000)์ด ์ฃผ์–ด์ง„๋‹ค. ๋‹ค์Œ N๊ฐœ์˜ ์ค„์—๋Š” ์—ฐ์‚ฐ์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ์ •์ˆ˜ x๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. ๋งŒ์•ฝ x๊ฐ€ 0์ด ์•„๋‹ˆ๋ผ๋ฉด ๋ฐฐ์—ด์— x๋ผ๋Š” ๊ฐ’์„ ๋„ฃ๋Š”(์ถ”๊ฐ€ํ•˜๋Š”) ์—ฐ์‚ฐ์ด๊ณ , x๊ฐ€ 0 www.acmicpc.net ํ’€์ด # ๋ฐฑ์ค€ 11286๋ฒˆ ๋ฌธ์ œ - ์ ˆ๋Œ“๊ฐ’ ํž™ import sys import heapq heap = [] n = int(sys.stdin.readline()) for i in range(n): num = int(sys.stdin.readline()) if num != 0: heapq.heappush(heap, (abs(num), num)) else: if not hea..

๐ŸŸฉ [๋ฐฑ์ค€] [Python] [Class3] 6064๋ฒˆ_์นด์ž‰ ๋‹ฌ๋ ฅ

๋ฌธ์ œ https://www.acmicpc.net/problem/6064 6064๋ฒˆ: ์นด์ž‰ ๋‹ฌ๋ ฅ ์ž…๋ ฅ ๋ฐ์ดํ„ฐ๋Š” ํ‘œ์ค€ ์ž…๋ ฅ์„ ์‚ฌ์šฉํ•œ๋‹ค. ์ž…๋ ฅ์€ T๊ฐœ์˜ ํ…Œ์ŠคํŠธ ๋ฐ์ดํ„ฐ๋กœ ๊ตฌ์„ฑ๋œ๋‹ค. ์ž…๋ ฅ์˜ ์ฒซ ๋ฒˆ์งธ ์ค„์—๋Š” ์ž…๋ ฅ ๋ฐ์ดํ„ฐ์˜ ์ˆ˜๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ์ •์ˆ˜ T๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. ๊ฐ ํ…Œ์ŠคํŠธ ๋ฐ์ดํ„ฐ๋Š” ํ•œ ์ค„๋กœ ๊ตฌ์„ฑ๋œ๋‹ค. www.acmicpc.net ํ’€์ด # ๋ฐฑ์ค€ 6064๋ฒˆ ๋ฌธ์ œ - ์นด์ž‰ ๋‹ฌ๋ ฅ t = int(input()) for _ in range(t): m, n, x, y = map(int, input().split()) answer = -1 while x

๐ŸŸฉ [๋ฐฑ์ค€] [Python] 11725๋ฒˆ_ํŠธ๋ฆฌ์˜ ๋ถ€๋ชจ์ฐพ๊ธฐ

๋ฌธ์ œ https://www.acmicpc.net/problem/11725 11725๋ฒˆ: ํŠธ๋ฆฌ์˜ ๋ถ€๋ชจ ์ฐพ๊ธฐ ๋ฃจํŠธ ์—†๋Š” ํŠธ๋ฆฌ๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. ์ด๋•Œ, ํŠธ๋ฆฌ์˜ ๋ฃจํŠธ๋ฅผ 1์ด๋ผ๊ณ  ์ •ํ–ˆ์„ ๋•Œ, ๊ฐ ๋…ธ๋“œ์˜ ๋ถ€๋ชจ๋ฅผ ๊ตฌํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์‹œ์˜ค. www.acmicpc.net ํ’€์ด # ๋ฐฑ์ค€ 11725๋ฒˆ ๋ฌธ์ œ - ํŠธ๋ฆฌ์˜ ๋ถ€๋ชจ์ฐพ๊ธฐ n = int(input()) tree = [[] for _ in range(n+1)] for _ in range(n-1): root, child = map(int ,input().split()) tree[root].append(child) tree[child].append(root) visited = [0]*(n+1) def dfs(v): for i in tree[v]: if visited[i] == ..