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

๐ŸŸฉ [๋ฐฑ์ค€] [Python] [Gold5] 2293๋ฒˆ_๋™์ „1

๋ฌธ์ œ https://www.acmicpc.net/problem/2293 2293๋ฒˆ: ๋™์ „ 1 ์ฒซ์งธ ์ค„์— n, k๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. (1 ≤ n ≤ 100, 1 ≤ k ≤ 10,000) ๋‹ค์Œ n๊ฐœ์˜ ์ค„์—๋Š” ๊ฐ๊ฐ์˜ ๋™์ „์˜ ๊ฐ€์น˜๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. ๋™์ „์˜ ๊ฐ€์น˜๋Š” 100,000๋ณด๋‹ค ์ž‘๊ฑฐ๋‚˜ ๊ฐ™์€ ์ž์—ฐ์ˆ˜์ด๋‹ค. www.acmicpc.net ํ’€์ด # ๋ฐฑ์ค€ 2293๋ฒˆ ๋ฌธ์ œ - ๋™์ „ 1 n, k = map(int, input().split()) coin = [int(input()) for _ in range(n)] dp = [0 for i in range(k+1)] dp[0] = 1 for i in coin: for j in range(i, k+1): if j - i >= 0: dp[j] += dp[j-i] print(dp[k])

๐ŸŸฉ [๋ฐฑ์ค€] [Python] [Gold5] 14503๋ฒˆ_๋กœ๋ด‡ ์ฒญ์†Œ๊ธฐ

๋ฌธ์ œ https://www.acmicpc.net/problem/14503 14503๋ฒˆ: ๋กœ๋ด‡ ์ฒญ์†Œ๊ธฐ ๋กœ๋ด‡ ์ฒญ์†Œ๊ธฐ๊ฐ€ ์ฃผ์–ด์กŒ์„ ๋•Œ, ์ฒญ์†Œํ•˜๋Š” ์˜์—ญ์˜ ๊ฐœ์ˆ˜๋ฅผ ๊ตฌํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์‹œ์˜ค. ๋กœ๋ด‡ ์ฒญ์†Œ๊ธฐ๊ฐ€ ์žˆ๋Š” ์žฅ์†Œ๋Š” N×M ํฌ๊ธฐ์˜ ์ง์‚ฌ๊ฐํ˜•์œผ๋กœ ๋‚˜ํƒ€๋‚ผ ์ˆ˜ ์žˆ์œผ๋ฉฐ, 1×1ํฌ๊ธฐ์˜ ์ •์‚ฌ๊ฐํ˜• ์นธ์œผ๋กœ ๋‚˜๋ˆ„์–ด www.acmicpc.net ํ’€์ด # ๋ฐฑ์ค€ 14503๋ฒˆ ๋ฌธ์ œ - ๋กœ๋ด‡ ์ฒญ์†Œ๊ธฐ import sys from collections import deque input = sys.stdin.readline n,m = map(int,input().split()) visited = [[0] * m for _ in range(n)] r,c,d = map(int,input().split()) graph = [list(map(int,..

๐ŸŸฉ [๋ฐฑ์ค€] [Python] [Silver4] 1269๋ฒˆ_๋Œ€์นญ ์ฐจ์ง‘ํ•ฉ

๋ฌธ์ œ https://www.acmicpc.net/problem/1269 1269๋ฒˆ: ๋Œ€์นญ ์ฐจ์ง‘ํ•ฉ ์ฒซ์งธ ์ค„์— ์ง‘ํ•ฉ A์˜ ์›์†Œ์˜ ๊ฐœ์ˆ˜์™€ ์ง‘ํ•ฉ B์˜ ์›์†Œ์˜ ๊ฐœ์ˆ˜๊ฐ€ ๋นˆ ์นธ์„ ์‚ฌ์ด์— ๋‘๊ณ  ์ฃผ์–ด์ง„๋‹ค. ๋‘˜์งธ ์ค„์—๋Š” ์ง‘ํ•ฉ A์˜ ๋ชจ๋“  ์›์†Œ๊ฐ€, ์…‹์งธ ์ค„์—๋Š” ์ง‘ํ•ฉ B์˜ ๋ชจ๋“  ์›์†Œ๊ฐ€ ๋นˆ ์นธ์„ ์‚ฌ์ด์— ๋‘๊ณ  ๊ฐ๊ฐ ์ฃผ์–ด www.acmicpc.net ํ’€์ด # ๋ฐฑ์ค€ 1269๋ฒˆ ๋ฌธ์ œ - ๋Œ€์นญ ์ฐจ์ง‘ํ•ฉ a_cnt, b_cnt = map(int, input().split()) A = set(map(int, input().split())) B = set(map(int, input().split())) print(len(A^B))

๐ŸŸฉ [๋ฐฑ์ค€] [Python] [Silver1] 1303๋ฒˆ_์ „์Ÿ-์ „ํˆฌ

๋ฌธ์ œ https://www.acmicpc.net/problem/1303 1303๋ฒˆ: ์ „์Ÿ - ์ „ํˆฌ ์ฒซ์งธ ์ค„์—๋Š” ์ „์Ÿํ„ฐ์˜ ๊ฐ€๋กœ ํฌ๊ธฐ N, ์„ธ๋กœ ํฌ๊ธฐ M(1 ≤ N, M ≤ 100)์ด ์ฃผ์–ด์ง„๋‹ค. ๊ทธ ๋‹ค์Œ ๋‘ ๋ฒˆ์งธ ์ค„์—์„œ M+1๋ฒˆ์งธ ์ค„์—๋Š” ๊ฐ๊ฐ (X, Y)์— ์žˆ๋Š” ๋ณ‘์‚ฌ๋“ค์˜ ์˜ท์ƒ‰์ด ๋„์–ด์“ฐ๊ธฐ ์—†์ด ์ฃผ์–ด์ง„๋‹ค. ๋ชจ๋“  ์ž๋ฆฌ์—๋Š” www.acmicpc.net ํ’€์ด # ๋ฐฑ์ค€ 1303๋ฒˆ ๋ฌธ์ œ - ์ „์Ÿ-์ „ํˆฌ from collections import deque dx, dy = [0,0,-1,1], [1,-1,0,0] n, m = map(int, input().split()) graph = [list(input()) for i in range(m)] visited = [[0]*n for j in range(m)] def bfs(..

๐ŸŸฉ [๋ฐฑ์ค€] [Python] [Silver1] 2504๋ฒˆ_๊ด„ํ˜ธ์˜ ๊ฐ’

๋ฌธ์ œ https://www.acmicpc.net/problem/2504 2504๋ฒˆ: ๊ด„ํ˜ธ์˜ ๊ฐ’ 4๊ฐœ์˜ ๊ธฐํ˜ธ ‘(’, ‘)’, ‘[’, ‘]’๋ฅผ ์ด์šฉํ•ด์„œ ๋งŒ๋“ค์–ด์ง€๋Š” ๊ด„ํ˜ธ์—ด ์ค‘์—์„œ ์˜ฌ๋ฐ”๋ฅธ ๊ด„ํ˜ธ์—ด์ด๋ž€ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ •์˜๋œ๋‹ค. ํ•œ ์Œ์˜ ๊ด„ํ˜ธ๋กœ๋งŒ ์ด๋ฃจ์–ด์ง„ ‘()’์™€ ‘[]’๋Š” ์˜ฌ๋ฐ”๋ฅธ ๊ด„ํ˜ธ์—ด์ด๋‹ค. ๋งŒ์ผ X www.acmicpc.net ํ’€์ด # ๋ฐฑ์ค€ 2504๋ฒˆ ๋ฌธ์ œ - ๊ด„ํ˜ธ์˜ ๊ฐ’ bracket = list(input()) stack = [] answer = 0 tmp = 1 for i in range(len(bracket)): if bracket[i] == '(': stack.append(bracket[i]) tmp *= 2 elif bracket[i] == '[': stack.append(bracket[i]) tmp..

๐ŸŸฉ [๋ฐฑ์ค€] [Python] [Gold5] 1068๋ฒˆ_ํŠธ๋ฆฌ

๋ฌธ์ œ https://www.acmicpc.net/problem/1068 1068๋ฒˆ: ํŠธ๋ฆฌ ์ฒซ์งธ ์ค„์— ํŠธ๋ฆฌ์˜ ๋…ธ๋“œ์˜ ๊ฐœ์ˆ˜ N์ด ์ฃผ์–ด์ง„๋‹ค. N์€ 50๋ณด๋‹ค ์ž‘๊ฑฐ๋‚˜ ๊ฐ™์€ ์ž์—ฐ์ˆ˜์ด๋‹ค. ๋‘˜์งธ ์ค„์—๋Š” 0๋ฒˆ ๋…ธ๋“œ๋ถ€ํ„ฐ N-1๋ฒˆ ๋…ธ๋“œ๊นŒ์ง€, ๊ฐ ๋…ธ๋“œ์˜ ๋ถ€๋ชจ๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. ๋งŒ์•ฝ ๋ถ€๋ชจ๊ฐ€ ์—†๋‹ค๋ฉด (๋ฃจํŠธ) -1์ด ์ฃผ์–ด์ง„๋‹ค www.acmicpc.net ํ’€์ด # ๋ฐฑ์ค€ 1068๋ฒˆ ๋ฌธ์ œ - ํŠธ๋ฆฌ n = int(input()) node = list(map(int, input().split())) m = int(input()) cnt = 0 def dfs(n, node): node[n] = -2 for i in range(len(node)): if n == node[i]: dfs(i, node) dfs(m, node) for i in rang..

๐ŸŸฉ [๋ฐฑ์ค€] [Python] [Gold4] 2573๋ฒˆ_๋น™์‚ฐ

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

๐ŸŸฉ [๋ฐฑ์ค€] [Python] 13549๋ฒˆ_์ˆจ๋ฐ”๊ผญ์งˆ 3

๋ฌธ์ œ https://www.acmicpc.net/problem/13549 13549๋ฒˆ: ์ˆจ๋ฐ”๊ผญ์งˆ 3 ์ˆ˜๋นˆ์ด๋Š” ๋™์ƒ๊ณผ ์ˆจ๋ฐ”๊ผญ์งˆ์„ ํ•˜๊ณ  ์žˆ๋‹ค. ์ˆ˜๋นˆ์ด๋Š” ํ˜„์žฌ ์  N(0 ≤ N ≤ 100,000)์— ์žˆ๊ณ , ๋™์ƒ์€ ์  K(0 ≤ K ≤ 100,000)์— ์žˆ๋‹ค. ์ˆ˜๋นˆ์ด๋Š” ๊ฑท๊ฑฐ๋‚˜ ์ˆœ๊ฐ„์ด๋™์„ ํ•  ์ˆ˜ ์žˆ๋‹ค. ๋งŒ์•ฝ, ์ˆ˜๋นˆ์ด์˜ ์œ„์น˜๊ฐ€ X์ผ www.acmicpc.net ํ’€์ด # ๋ฐฑ์ค€ 13549๋ฒˆ ๋ฌธ์ œ - ์ˆจ๋ฐ”๊ผญ์งˆ 3 from collections import deque # 0 - 1 bfs ํƒ์ƒ‰ def bfs(): graph = [-1] * 100001 graph[n] = 0 queue = deque([n]) while queue: target = queue.popleft() # ๋™์ƒ์˜ ์œ„์น˜์— ๋„๋‹ฌํ–ˆ๋‹ค๋ฉด ๋ฆฌํ„ด if targ..

๐ŸŸฉ [๋ฐฑ์ค€] [Python] 24444๋ฒˆ_์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ˆ˜์—… - ๋„ˆ๋น„ ์šฐ์„  ํƒ์ƒ‰ 1

๋ฌธ์ œ https://www.acmicpc.net/problem/24444 24444๋ฒˆ: ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ˆ˜์—… - ๋„ˆ๋น„ ์šฐ์„  ํƒ์ƒ‰ 1 ์ฒซ์งธ ์ค„์— ์ •์ ์˜ ์ˆ˜ N (5 ≤ N ≤ 100,000), ๊ฐ„์„ ์˜ ์ˆ˜ M (1 ≤ M ≤ 200,000), ์‹œ์ž‘ ์ •์  R (1 ≤ R ≤ N)์ด ์ฃผ์–ด์ง„๋‹ค. ๋‹ค์Œ M๊ฐœ ์ค„์— ๊ฐ„์„  ์ •๋ณด u v๊ฐ€ ์ฃผ์–ด์ง€๋ฉฐ ์ •์  u์™€ ์ •์  v์˜ ๊ฐ€์ค‘์น˜ 1์ธ ์–‘๋ฐฉ www.acmicpc.net ํ’€์ด # ๋ฐฑ์ค€ 24444๋ฒˆ ๋ฌธ์ œ - ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ˆ˜์—… - ๋„ˆ๋น„ ์šฐ์„  ํƒ์ƒ‰ 1 from collections import deque import sys input = sys.stdin.readline n, m, r = map(int, input().split()) graph = [[] for _ in range(n+1)] ..

๐ŸŸฉ [๋ฐฑ์ค€] [Python] 24445๋ฒˆ_์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ˆ˜์—… - ๋„ˆ๋น„ ์šฐ์„  ํƒ์ƒ‰ 2

๋ฌธ์ œ https://www.acmicpc.net/problem/24445 24445๋ฒˆ: ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ˆ˜์—… - ๋„ˆ๋น„ ์šฐ์„  ํƒ์ƒ‰ 2 ์ฒซ์งธ ์ค„์— ์ •์ ์˜ ์ˆ˜ N (5 ≤ N ≤ 100,000), ๊ฐ„์„ ์˜ ์ˆ˜ M (1 ≤ M ≤ 200,000), ์‹œ์ž‘ ์ •์  R (1 ≤ R ≤ N)์ด ์ฃผ์–ด์ง„๋‹ค. ๋‹ค์Œ M๊ฐœ ์ค„์— ๊ฐ„์„  ์ •๋ณด u v๊ฐ€ ์ฃผ์–ด์ง€๋ฉฐ ์ •์  u์™€ ์ •์  v์˜ ๊ฐ€์ค‘์น˜ 1์ธ ์–‘ www.acmicpc.net ํ’€์ด # ๋ฐฑ์ค€ 24445๋ฒˆ ๋ฌธ์ œ - ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ˆ˜์—… - ๋„ˆ๋น„ ์šฐ์„  ํƒ์ƒ‰ 2 from collections import deque import sys input = sys.stdin.readline n, m, r = map(int, input().split()) graph = [[] for _ in range(n+1)] v..