๐Ÿ—๏ธ Algorithm 344

๐ŸŸฉ [๋ฐฑ์ค€] [Python] 1946๋ฒˆ_์‹ ์ž… ์‚ฌ์›

๋ฌธ์ œ https://www.acmicpc.net/problem/1946 1946๋ฒˆ: ์‹ ์ž… ์‚ฌ์› ์ฒซ์งธ ์ค„์—๋Š” ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค์˜ ๊ฐœ์ˆ˜ T(1 ≤ T ≤ 20)๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. ๊ฐ ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค์˜ ์ฒซ์งธ ์ค„์— ์ง€์›์ž์˜ ์ˆซ์ž N(1 ≤ N ≤ 100,000)์ด ์ฃผ์–ด์ง„๋‹ค. ๋‘˜์งธ ์ค„๋ถ€ํ„ฐ N๊ฐœ ์ค„์—๋Š” ๊ฐ๊ฐ์˜ ์ง€์›์ž์˜ ์„œ๋ฅ˜์‹ฌ์‚ฌ ์„ฑ www.acmicpc.net ํ’€์ด # ๋ฐฑ์ค€ 1946๋ฒˆ ๋ฌธ์ œ - ์‹ ์ž… ์‚ฌ์› from collections import deque import sys input = sys.stdin.readline t = int(input()) for _ in range(t): n = int(input()) arr = [] for _ in range(n): a, b = map(int, input().split()) a..

๐ŸŸฉ [๋ฐฑ์ค€] [Python] [ํ] 16927๋ฒˆ_๋ฑ€๊ณผ ์‚ฌ๋‹ค๋ฆฌ ๊ฒŒ์ž„

๋ฌธ์ œ https://www.acmicpc.net/problem/1021 1021๋ฒˆ: ํšŒ์ „ํ•˜๋Š” ํ ์ฒซ์งธ ์ค„์— ํ์˜ ํฌ๊ธฐ N๊ณผ ๋ฝ‘์•„๋‚ด๋ ค๊ณ  ํ•˜๋Š” ์ˆ˜์˜ ๊ฐœ์ˆ˜ M์ด ์ฃผ์–ด์ง„๋‹ค. N์€ 50๋ณด๋‹ค ์ž‘๊ฑฐ๋‚˜ ๊ฐ™์€ ์ž์—ฐ์ˆ˜์ด๊ณ , M์€ N๋ณด๋‹ค ์ž‘๊ฑฐ๋‚˜ ๊ฐ™์€ ์ž์—ฐ์ˆ˜์ด๋‹ค. ๋‘˜์งธ ์ค„์—๋Š” ์ง€๋ฏผ์ด๊ฐ€ ๋ฝ‘์•„๋‚ด๋ ค๊ณ  ํ•˜๋Š” ์ˆ˜์˜ ์œ„์น˜๊ฐ€ www.acmicpc.net ํ’€์ด # ๋ฐฑ์ค€ 1021๋ฒˆ ๋ฌธ์ œ - ํšŒ์ „ํ•˜๋Š” ํ from collections import deque n,m = list(map(int,input().split())) value = list(map(int,input().split())) q = deque([i+1 for i in range(n)]) count = 0 for x in value: while True: if q.index(x)..

๐ŸŸฉ [๋ฐฑ์ค€] [Python] [BFS/DFS] 2583๋ฒˆ_์˜์—ญ ๊ตฌํ•˜๊ธฐ

๋ฌธ์ œ https://www.acmicpc.net/problem/2583 2583๋ฒˆ: ์˜์—ญ ๊ตฌํ•˜๊ธฐ ์ฒซ์งธ ์ค„์— M๊ณผ N, ๊ทธ๋ฆฌ๊ณ  K๊ฐ€ ๋นˆ์นธ์„ ์‚ฌ์ด์— ๋‘๊ณ  ์ฐจ๋ก€๋กœ ์ฃผ์–ด์ง„๋‹ค. M, N, K๋Š” ๋ชจ๋‘ 100 ์ดํ•˜์˜ ์ž์—ฐ์ˆ˜์ด๋‹ค. ๋‘˜์งธ ์ค„๋ถ€ํ„ฐ K๊ฐœ์˜ ์ค„์—๋Š” ํ•œ ์ค„์— ํ•˜๋‚˜์”ฉ ์ง์‚ฌ๊ฐํ˜•์˜ ์™ผ์ชฝ ์•„๋ž˜ ๊ผญ์ง“์ ์˜ x, y์ขŒํ‘œ๊ฐ’๊ณผ ์˜ค www.acmicpc.net ํ’€์ด # ๋ฐฑ์ค€ 2583๋ฒˆ ๋ฌธ์ œ - ์˜์—ญ ๊ตฌํ•˜๊ธฐ from collections import deque dx, dy = [0,0,-1,1], [1,-1,0,0] m, n, k = map(int, input().split()) graph = [[0]*(n) for _ in range(m)] for _ in range(k): x, y, x1, y1 = map(int, input(..

๐ŸŸฉ [๋ฐฑ์ค€] [Python] [BFS/DFS] 2644๋ฒˆ_์ดŒ์ˆ˜๊ณ„์‚ฐ

๋ฌธ์ œ https://www.acmicpc.net/problem/2644 2644๋ฒˆ: ์ดŒ์ˆ˜๊ณ„์‚ฐ ์‚ฌ๋žŒ๋“ค์€ 1, 2, 3, …, n (1 ≤ n ≤ 100)์˜ ์—ฐ์†๋œ ๋ฒˆํ˜ธ๋กœ ๊ฐ๊ฐ ํ‘œ์‹œ๋œ๋‹ค. ์ž…๋ ฅ ํŒŒ์ผ์˜ ์ฒซ์งธ ์ค„์—๋Š” ์ „์ฒด ์‚ฌ๋žŒ์˜ ์ˆ˜ n์ด ์ฃผ์–ด์ง€๊ณ , ๋‘˜์งธ ์ค„์—๋Š” ์ดŒ์ˆ˜๋ฅผ ๊ณ„์‚ฐํ•ด์•ผ ํ•˜๋Š” ์„œ๋กœ ๋‹ค๋ฅธ ๋‘ ์‚ฌ๋žŒ์˜ ๋ฒˆํ˜ธ๊ฐ€ ์ฃผ์–ด www.acmicpc.net ํ’€์ด # ๋ฐฑ์ค€ 2644๋ฒˆ ๋ฌธ์ œ - ์ดŒ์ˆ˜๊ณ„์‚ฐ from collections import deque n = int(input()) x, y = map(int, input().split()) m = int(input()) graph = [[] for i in range(n+1)] visited = [0 for _ in range(n+1)] for i in range(m): a,..

๐ŸŸฉ [๋ฐฑ์ค€] [Python] [BFS/DFS] 5014๋ฒˆ_์Šคํƒ€ํŠธ๋งํฌ

๋ฌธ์ œ https://www.acmicpc.net/problem/5014 5014๋ฒˆ: ์Šคํƒ€ํŠธ๋งํฌ ์ฒซ์งธ ์ค„์— F, S, G, U, D๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. (1 ≤ S, G ≤ F ≤ 1000000, 0 ≤ U, D ≤ 1000000) ๊ฑด๋ฌผ์€ 1์ธต๋ถ€ํ„ฐ ์‹œ์ž‘ํ•˜๊ณ , ๊ฐ€์žฅ ๋†’์€ ์ธต์€ F์ธต์ด๋‹ค. www.acmicpc.net ํ’€์ด # ๋ฐฑ์ค€ 5014๋ฒˆ ๋ฌธ์ œ - ์Šคํƒ€ํŠธ๋งํฌ from collections import deque import sys input = sys.stdin.readline def bfs(v): q = deque([v]) visited[v] = 1 while q: v = q.popleft() if v == g: return count[g] for i in (v+u, v-d): if 0 < i

๐ŸŸฉ [๋ฐฑ์ค€] [Python] [BFS/DFS] 7569๋ฒˆ_ํ† ๋งˆํ† 

๋ฌธ์ œ https://www.acmicpc.net/problem/7569 7569๋ฒˆ: ํ† ๋งˆํ†  ์ฒซ ์ค„์—๋Š” ์ƒ์ž์˜ ํฌ๊ธฐ๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ๋‘ ์ •์ˆ˜ M,N๊ณผ ์Œ“์•„์˜ฌ๋ ค์ง€๋Š” ์ƒ์ž์˜ ์ˆ˜๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” H๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. M์€ ์ƒ์ž์˜ ๊ฐ€๋กœ ์นธ์˜ ์ˆ˜, N์€ ์ƒ์ž์˜ ์„ธ๋กœ ์นธ์˜ ์ˆ˜๋ฅผ ๋‚˜ํƒ€๋‚ธ๋‹ค. ๋‹จ, 2 ≤ M ≤ 100, 2 ≤ N ≤ 100, www.acmicpc.net ํ’€์ด BFS๋กœ ์‰ฝ๊ฒŒ ํ’€ ์ˆ˜ ์žˆ์ง€๋งŒ 3์ฐจ์› ๋ฐฐ์—ด์„ ์‚ฌ์šฉํ•˜๋‹ค ๋ณด๋‹ˆ ์ธ๋ฑ์Šค ๋ถ€๋ถ„์„ ์ž˜ ์‚ดํŽด๋ณด๋„๋ก ํ•˜์ž # ๋ฐฑ์ค€ 7569๋ฒˆ ๋ฌธ์ œ - ํ† ๋งˆํ†  from collections import deque import sys input = sys.stdin.readline dx=[0,0,-1,1,0,0] # ๋†’์ด dy=[1,-1,0,0,0,0] dz=[0,0,0,0,1,-1] m,n,h ..

๐ŸŸฉ [๋ฐฑ์ค€] [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..