๐Ÿ—๏ธ Algorithm 344

๐ŸŸฉ [๋ฐฑ์ค€] [Python] [BFS] 1926๋ฒˆ_๊ทธ๋ฆผ

๋ฌธ์ œ https://www.acmicpc.net/problem/1926 1926๋ฒˆ: ๊ทธ๋ฆผ ์–ด๋–ค ํฐ ๋„ํ™”์ง€์— ๊ทธ๋ฆผ์ด ๊ทธ๋ ค์ ธ ์žˆ์„ ๋•Œ, ๊ทธ ๊ทธ๋ฆผ์˜ ๊ฐœ์ˆ˜์™€, ๊ทธ ๊ทธ๋ฆผ ์ค‘ ๋„“์ด๊ฐ€ ๊ฐ€์žฅ ๋„“์€ ๊ฒƒ์˜ ๋„“์ด๋ฅผ ์ถœ๋ ฅํ•˜์—ฌ๋ผ. ๋‹จ, ๊ทธ๋ฆผ์ด๋ผ๋Š” ๊ฒƒ์€ 1๋กœ ์—ฐ๊ฒฐ๋œ ๊ฒƒ์„ ํ•œ ๊ทธ๋ฆผ์ด๋ผ๊ณ  ์ •์˜ํ•˜์ž. ๊ฐ€๋กœ๋‚˜ ์„ธ๋กœ www.acmicpc.net ํ’€์ด # ๋ฐฑ์ค€ 1926๋ฒˆ ๋ฌธ์ œ - ๊ทธ๋ฆผ from collections import deque n, m = map(int, input().split()) graph = [] for _ in range(n): graph.append(list(map(int, input().split()))) dx = [0,0,-1,1] dy = [1,-1,0,0] def bfs(graph, x, y): queue = ..

๐ŸŸฉ [๋ฐฑ์ค€] [Python] 1002๋ฒˆ_ํ„ฐ๋ ›

๋ฌธ์ œ https://www.acmicpc.net/problem/1002 1002๋ฒˆ: ํ„ฐ๋ › ๊ฐ ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค๋งˆ๋‹ค ๋ฅ˜์žฌ๋ช…์ด ์žˆ์„ ์ˆ˜ ์žˆ๋Š” ์œ„์น˜์˜ ์ˆ˜๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค. ๋งŒ์•ฝ ๋ฅ˜์žฌ๋ช…์ด ์žˆ์„ ์ˆ˜ ์žˆ๋Š” ์œ„์น˜์˜ ๊ฐœ์ˆ˜๊ฐ€ ๋ฌดํ•œ๋Œ€์ผ ๊ฒฝ์šฐ์—๋Š” -1์„ ์ถœ๋ ฅํ•œ๋‹ค. www.acmicpc.net ํ’€์ด # ๋ฐฑ์ค€ 1002๋ฒˆ ๋ฌธ์ œ - ํ„ฐ๋ › import math n = int(input()) for _ in range(n): x1, y1, r1, x2, y2, r2 = map(int, input().split()) distance = math.sqrt((x1-x2)**2 + (y1-y2)**2) # ๋‘ ์›์˜ ๊ฑฐ๋ฆฌ (์›์˜๋ฐฉ์ •์‹ํ™œ์šฉ) if distance == 0 and r1 == r2 : # ๋‘ ์›์ด ๋™์‹ฌ์›์ด๊ณ  ๋ฐ˜์ง€๋ฆ„์ด ๊ฐ™์„ ๋•Œ print(-1..

๐ŸŸฉ [๋ฐฑ์ค€] [Python] 1629๋ฒˆ_๊ณฑ์…ˆ

๋ฌธ์ œ https://www.acmicpc.net/problem/1629 1629๋ฒˆ: ๊ณฑ์…ˆ ์ฒซ์งธ ์ค„์— A, B, C๊ฐ€ ๋นˆ ์นธ์„ ์‚ฌ์ด์— ๋‘๊ณ  ์ˆœ์„œ๋Œ€๋กœ ์ฃผ์–ด์ง„๋‹ค. A, B, C๋Š” ๋ชจ๋‘ 2,147,483,647 ์ดํ•˜์˜ ์ž์—ฐ์ˆ˜์ด๋‹ค. www.acmicpc.net ํ’€์ด # ๋ฐฑ์ค€ 1629๋ฒˆ ๋ฌธ์ œ - ๊ณฑ์…ˆ a, b, c = map(int, input().split()) # 1. b์˜ ๊ฐ’์ด ์ง์ˆ˜์ธ์ง€ ํ™€์ˆ˜์ธ์ง€ ํŒŒ์•… # 2. b์˜ ๊ฐ’์ด ์ง์ˆ˜๋ผ๋ฉด 10^10 -> (10^5)^2 ํ˜•ํƒœ๋กœ ๋ฐ”๊ฟ”์ค€๋‹ค # 3. b์˜ ๊ฐ’์ด ํ™€์ˆ˜๋ผ๋ฉด 10^11 -> (10^5)^2 * 10 ํ˜•ํƒœ๋กœ ๋ฐ”๊ฟ”์ค€๋‹ค. def power(a, b): if b==1: # b์˜ ๊ฐ’์ด 1 return a % c else: temp = power(a, b//2) if b %..

๐ŸŸฉ [๋ฐฑ์ค€] [Python] 1182๋ฒˆ_๋ถ€๋ถ„์ˆ˜์—ด์˜ ํ•ฉ

๋ฌธ์ œ [Silver2] https://www.acmicpc.net/problem/1182 1182๋ฒˆ: ๋ถ€๋ถ„์ˆ˜์—ด์˜ ํ•ฉ ์ฒซ์งธ ์ค„์— ์ •์ˆ˜์˜ ๊ฐœ์ˆ˜๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” N๊ณผ ์ •์ˆ˜ S๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. (1 ≤ N ≤ 20, |S| ≤ 1,000,000) ๋‘˜์งธ ์ค„์— N๊ฐœ์˜ ์ •์ˆ˜๊ฐ€ ๋นˆ ์นธ์„ ์‚ฌ์ด์— ๋‘๊ณ  ์ฃผ์–ด์ง„๋‹ค. ์ฃผ์–ด์ง€๋Š” ์ •์ˆ˜์˜ ์ ˆ๋Œ“๊ฐ’์€ 100,000์„ ๋„˜์ง€ ์•Š๋Š”๋‹ค. www.acmicpc.net ํ’€์ด # ๋ฐฑ์ค€ 1182๋ฒˆ ๋ฌธ์ œ - ๋ถ€๋ถ„ ์ˆ˜์—ด์˜ ํ•ฉ n, s = map(int,input().split()) n_list = list(map(int,input().split())) cnt = 0 def dfs(num,sum): global cnt if num >= n: return sum += n_list[num] if sum == s: c..

๐ŸŸฉ [๋ฐฑ์ค€] [Python] [Class3] 1074๋ฒˆ_Z

๋ฌธ์ œ https://www.acmicpc.net/problem/1074 1074๋ฒˆ: Z ํ•œ์ˆ˜๋Š” ํฌ๊ธฐ๊ฐ€ 2N × 2N์ธ 2์ฐจ์› ๋ฐฐ์—ด์„ Z๋ชจ์–‘์œผ๋กœ ํƒ์ƒ‰ํ•˜๋ ค๊ณ  ํ•œ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, 2×2๋ฐฐ์—ด์„ ์™ผ์ชฝ ์œ„์นธ, ์˜ค๋ฅธ์ชฝ ์œ„์นธ, ์™ผ์ชฝ ์•„๋ž˜์นธ, ์˜ค๋ฅธ์ชฝ ์•„๋ž˜์นธ ์ˆœ์„œ๋Œ€๋กœ ๋ฐฉ๋ฌธํ•˜๋ฉด Z๋ชจ์–‘์ด๋‹ค. N > 1์ธ ๊ฒฝ์šฐ, ๋ฐฐ์—ด์„ www.acmicpc.net ํ’€์ด # ๋ฐฑ์ค€ 1074๋ฒˆ ๋ฌธ์ œ - Z N, r, c = map(int, input().split()) cnt = 0 while N > 1: size = (2 ** N) // 2 if r = size: # 1์‚ฌ๋ถ„๋ฉด cnt += size ** 2 c -= size elif r >= size ..

๐ŸŸฉ [๋ฐฑ์ค€] [Python] [Class3] 18870๋ฒˆ_์ขŒํ‘œ ์••์ถ•

๋ฌธ์ œ https://www.acmicpc.net/problem/18870 18870๋ฒˆ: ์ขŒํ‘œ ์••์ถ• ์ˆ˜์ง์„  ์œ„์— N๊ฐœ์˜ ์ขŒํ‘œ X1, X2, ..., XN์ด ์žˆ๋‹ค. ์ด ์ขŒํ‘œ์— ์ขŒํ‘œ ์••์ถ•์„ ์ ์šฉํ•˜๋ ค๊ณ  ํ•œ๋‹ค. Xi๋ฅผ ์ขŒํ‘œ ์••์ถ•ํ•œ ๊ฒฐ๊ณผ X'i์˜ ๊ฐ’์€ Xi > Xj๋ฅผ ๋งŒ์กฑํ•˜๋Š” ์„œ๋กœ ๋‹ค๋ฅธ ์ขŒํ‘œ์˜ ๊ฐœ์ˆ˜์™€ ๊ฐ™์•„์•ผ ํ•œ๋‹ค. X1, X2, ..., XN์— ์ขŒ www.acmicpc.net ํ’€์ด # ๋ฐฑ์ค€ 18870๋ฒˆ ๋ฌธ์ œ - ์ขŒํ‘œ ์••์ถ• n = int(input()) x = list(map(int, input().split())) new_x = list(sorted(set(x))) dict = {new_x[i]: i for i in range(len(new_x))} for i in x: print(dict[i], end=" ") ..

๐ŸŸฉ [๋ฐฑ์ค€] [Python] [Class3] 11724๋ฒˆ_์—ฐ๊ฒฐ ์š”์†Œ์˜ ๊ฐœ์ˆ˜

๋ฌธ์ œ https://www.acmicpc.net/problem/11724 11724๋ฒˆ: ์—ฐ๊ฒฐ ์š”์†Œ์˜ ๊ฐœ์ˆ˜ ์ฒซ์งธ ์ค„์— ์ •์ ์˜ ๊ฐœ์ˆ˜ N๊ณผ ๊ฐ„์„ ์˜ ๊ฐœ์ˆ˜ M์ด ์ฃผ์–ด์ง„๋‹ค. (1 ≤ N ≤ 1,000, 0 ≤ M ≤ N×(N-1)/2) ๋‘˜์งธ ์ค„๋ถ€ํ„ฐ M๊ฐœ์˜ ์ค„์— ๊ฐ„์„ ์˜ ์–‘ ๋์  u์™€ v๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. (1 ≤ u, v ≤ N, u ≠ v) ๊ฐ™์€ ๊ฐ„์„ ์€ ํ•œ ๋ฒˆ๋งŒ ์ฃผ www.acmicpc.net ํ’€์ด DFS๋ฅผ ์ด์šฉํ•œ ํ’€์ด # ๋ฐฑ์ค€ 11724๋ฒˆ ๋ฌธ์ œ - ์—ฐ๊ฒฐ ์š”์†Œ์˜ ๊ฐœ์ˆ˜ import sys sys.setrecursionlimit(10**7) input = sys.stdin.readline n, m = map(int, input().split()) graph = [[] for _ in range(n+1)] visited = ..

๐ŸŸฉ [๋ฐฑ์ค€] [Python] [Class3] 1927๋ฒˆ_์ตœ๋Œ€ ํž™

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

๐ŸŸฉ [๋ฐฑ์ค€] [Python] [๊ตฌํ˜„] 2167๋ฒˆ_2์ฐจ์› ๋ฐฐ์—ด์˜ ํ•ฉ

๋ฌธ์ œ https://www.acmicpc.net/problem/2167 2167๋ฒˆ: 2์ฐจ์› ๋ฐฐ์—ด์˜ ํ•ฉ ์ฒซ์งธ ์ค„์— ๋ฐฐ์—ด์˜ ํฌ๊ธฐ N, M(1 ≤ N, M ≤ 300)์ด ์ฃผ์–ด์ง„๋‹ค. ๋‹ค์Œ N๊ฐœ์˜ ์ค„์—๋Š” M๊ฐœ์˜ ์ •์ˆ˜๋กœ ๋ฐฐ์—ด์ด ์ฃผ์–ด์ง„๋‹ค. ๋ฐฐ์—ด์— ํฌํ•จ๋˜์–ด ์žˆ๋Š” ์ˆ˜๋Š” ์ ˆ๋Œ“๊ฐ’์ด 10,000๋ณด๋‹ค ์ž‘๊ฑฐ๋‚˜ ๊ฐ™์€ ์ •์ˆ˜์ด๋‹ค. ๊ทธ ๋‹ค์Œ ์ค„์—๋Š” www.acmicpc.net ํ’€์ด # ๋ฐฑ์ค€ 2167๋ฒˆ ๋ฌธ์ œ - 2์ฐจ์› ๋ฐฐ์—ด์˜ ํ•ฉ n, m = map(int, input().split()) arr = [list(map(int, input().split())) for _ in range(n)] k = int(input()) dp = [[0] * (m+1) for _ in range(n+1)] for i in range(1, n+1): for ..

๐ŸŸฉ [๋ฐฑ์ค€] [Python] [๊ตฌํ˜„] 17478๋ฒˆ_์žฌ๊ท€ํ•จ์ˆ˜๊ฐ€ ๋ญ”๊ฐ€์š”?

๋ฌธ์ œ https://www.acmicpc.net/problem/17478 17478๋ฒˆ: ์žฌ๊ท€ํ•จ์ˆ˜๊ฐ€ ๋ญ”๊ฐ€์š”? ํ‰์†Œ์— ์งˆ๋ฌธ์„ ์ž˜ ๋ฐ›์•„์ฃผ๊ธฐ๋กœ ์œ ๋ช…ํ•œ ์ค‘์•™๋Œ€ํ•™๊ต์˜ JH ๊ต์ˆ˜๋‹˜์€ ํ•™์ƒ๋“ค๋กœ๋ถ€ํ„ฐ ์žฌ๊ท€ํ•จ์ˆ˜๊ฐ€ ๋ฌด์—‡์ธ์ง€์— ๋Œ€ํ•˜์—ฌ ๋งŽ์€ ์งˆ๋ฌธ์„ ๋ฐ›์•„์™”๋‹ค. ๋งค๋ฒˆ ์งˆ๋ฌธ์„ ์ž˜ ๋ฐ›์•„์ฃผ์…จ๋˜ JH ๊ต์ˆ˜๋‹˜์ด์ง€๋งŒ ๊ทธ๋Š” ์ค‘์•™๋Œ€ www.acmicpc.net ํ’€์ด # ๋ฐฑ์ค€ 17478๋ฒˆ ๋ฌธ์ œ - ์žฌ๊ท€ํ•จ์ˆ˜๊ฐ€ ๋ญ”๊ฐ€์š”? def recursive(m): print("_" * (4 * (n - m)) + '"์žฌ๊ท€ํ•จ์ˆ˜๊ฐ€ ๋ญ”๊ฐ€์š”?"') if not m: print("_" * (4 * (n - m)) + '"์žฌ๊ท€ํ•จ์ˆ˜๋Š” ์ž๊ธฐ ์ž์‹ ์„ ํ˜ธ์ถœํ•˜๋Š” ํ•จ์ˆ˜๋ผ๋„ค"') print("_" * (4 * (n - m)) + "๋ผ๊ณ  ๋‹ต๋ณ€ํ•˜์˜€์ง€.") return print("_" * ..