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

๐ŸŸฉ [๋ฐฑ์ค€] [Python] 2630๋ฒˆ_์ƒ‰์ข…์ด ๋งŒ๋“ค๊ธฐ

๋ฌธ์ œ https://www.acmicpc.net/problem/2630 2630๋ฒˆ: ์ƒ‰์ข…์ด ๋งŒ๋“ค๊ธฐ ์ฒซ์งธ ์ค„์—๋Š” ์ „์ฒด ์ข…์ด์˜ ํ•œ ๋ณ€์˜ ๊ธธ์ด N์ด ์ฃผ์–ด์ ธ ์žˆ๋‹ค. N์€ 2, 4, 8, 16, 32, 64, 128 ์ค‘ ํ•˜๋‚˜์ด๋‹ค. ์ƒ‰์ข…์ด์˜ ๊ฐ ๊ฐ€๋กœ์ค„์˜ ์ •์‚ฌ๊ฐํ˜•์นธ๋“ค์˜ ์ƒ‰์ด ์œ—์ค„๋ถ€ํ„ฐ ์ฐจ๋ก€๋กœ ๋‘˜์งธ ์ค„๋ถ€ํ„ฐ ๋งˆ์ง€๋ง‰ ์ค„๊นŒ์ง€ ์ฃผ์–ด์ง„๋‹ค. www.acmicpc.net ํ’€์ด # ๋ฐฑ์ค€ 2630๋ฒˆ ๋ฌธ์ œ - ์ƒ‰์ข…์ด ๋งŒ๋“ค๊ธฐ n = int(input()) graph = [list(map(int, input().split())) for _ in range(n)] result = [] def solution(x, y, n): half = n // 2 color = graph[x][y] for i in range(x, x+n): for j in..

๐ŸŸฉ [๋ฐฑ์ค€] [Python] 2468๋ฒˆ_์•ˆ์ „ ์˜์—ญ

๋ฌธ์ œ https://www.acmicpc.net/problem/2468 2468๋ฒˆ: ์•ˆ์ „ ์˜์—ญ ์žฌ๋‚œ๋ฐฉ์žฌ์ฒญ์—์„œ๋Š” ๋งŽ์€ ๋น„๊ฐ€ ๋‚ด๋ฆฌ๋Š” ์žฅ๋งˆ์ฒ ์— ๋Œ€๋น„ํ•ด์„œ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ผ์„ ๊ณ„ํšํ•˜๊ณ  ์žˆ๋‹ค. ๋จผ์ € ์–ด๋–ค ์ง€์—ญ์˜ ๋†’์ด ์ •๋ณด๋ฅผ ํŒŒ์•…ํ•œ๋‹ค. ๊ทธ ๋‹ค์Œ์— ๊ทธ ์ง€์—ญ์— ๋งŽ์€ ๋น„๊ฐ€ ๋‚ด๋ ธ์„ ๋•Œ ๋ฌผ์— ์ž ๊ธฐ์ง€ ์•Š๋Š” www.acmicpc.net ํ’€์ด # ๋ฐฑ์ค€ 2468๋ฒˆ ๋ฌธ์ œ - ์•ˆ์ „ ์˜์—ญ from collections import deque n = int(input()) graph = [] dx, dy = [0,0,-1,1],[1,-1,0,0] graph = [list(map(int, input().split())) for _ in range(n)] # 2

๐ŸŸฉ [๋ฐฑ์ค€] [Python] 2193๋ฒˆ_์ด์นœ์ˆ˜

๋ฌธ์ œ https://www.acmicpc.net/problem/2193 2193๋ฒˆ: ์ด์นœ์ˆ˜ 0๊ณผ 1๋กœ๋งŒ ์ด๋ฃจ์–ด์ง„ ์ˆ˜๋ฅผ ์ด์ง„์ˆ˜๋ผ ํ•œ๋‹ค. ์ด๋Ÿฌํ•œ ์ด์ง„์ˆ˜ ์ค‘ ํŠน๋ณ„ํ•œ ์„ฑ์งˆ์„ ๊ฐ–๋Š” ๊ฒƒ๋“ค์ด ์žˆ๋Š”๋ฐ, ์ด๋“ค์„ ์ด์นœ์ˆ˜(pinary number)๋ผ ํ•œ๋‹ค. ์ด์นœ์ˆ˜๋Š” ๋‹ค์Œ์˜ ์„ฑ์งˆ์„ ๋งŒ์กฑํ•œ๋‹ค. ์ด์นœ์ˆ˜๋Š” 0์œผ๋กœ ์‹œ์ž‘ํ•˜์ง€ ์•Š www.acmicpc.net ํ’€์ด # ๋ฐฑ์ค€ 2193๋ฒˆ ๋ฌธ์ œ - ์ด์นœ์ˆ˜ n = int(input()) # n ์ž๋ฆฌ ์ˆ˜ ๋งŒํผ dp ํ…Œ์ด๋ธ” ์ƒ์„ฑ => n+1 dp = [0] * (n + 1) dp[1] = 1 # dp ์ ํ™”์‹ # ๊ฒฝ์šฐ์˜ ์ˆ˜๋ฅผ ๋”ฐ์ ธ๋ณด๋ฉด ํ”ผ๋ณด๋‚˜์น˜ ์ˆ˜์—ด๊ณผ ๋น„์Šทํ•œ ํ˜•ํƒœ๋ฅผ ๋„๊ณ  ์žˆ์Œ for i in range(2, n+1): dp[i] = dp[i-2] + dp[i-1] print(dp[n])

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

๋ฌธ์ œ https://www.acmicpc.net/problem/7576 7576๋ฒˆ: ํ† ๋งˆํ†  ์ฒซ ์ค„์—๋Š” ์ƒ์ž์˜ ํฌ๊ธฐ๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ๋‘ ์ •์ˆ˜ M,N์ด ์ฃผ์–ด์ง„๋‹ค. M์€ ์ƒ์ž์˜ ๊ฐ€๋กœ ์นธ์˜ ์ˆ˜, N์€ ์ƒ์ž์˜ ์„ธ๋กœ ์นธ์˜ ์ˆ˜๋ฅผ ๋‚˜ํƒ€๋‚ธ๋‹ค. ๋‹จ, 2 ≤ M,N ≤ 1,000 ์ด๋‹ค. ๋‘˜์งธ ์ค„๋ถ€ํ„ฐ๋Š” ํ•˜๋‚˜์˜ ์ƒ์ž์— ์ €์žฅ๋œ ํ† ๋งˆํ†  www.acmicpc.net ํ’€์ด from collections import deque m, n = map(int, input().split()) matrix = [list(map(int, input().split())) for _ in range(n)] queue = deque([]) dx, dy = [-1, 1, 0, 0], [0, 0, -1, 1] res = 0 for i in range(n): f..

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