๐Ÿค–/๋ฐฑ์ค€ 109

๋ฐฑ์ค€ 1717: ์ง‘ํ•ฉ์˜ ํ‘œํ˜„ (Python)

https://www.acmicpc.net/problem/1717 1717๋ฒˆ: ์ง‘ํ•ฉ์˜ ํ‘œํ˜„ ์ฒซ์งธ ์ค„์— n(1 โ‰ค n โ‰ค 1,000,000), m(1 โ‰ค m โ‰ค 100,000)์ด ์ฃผ์–ด์ง„๋‹ค. m์€ ์ž…๋ ฅ์œผ๋กœ ์ฃผ์–ด์ง€๋Š” ์—ฐ์‚ฐ์˜ ๊ฐœ์ˆ˜์ด๋‹ค. ๋‹ค์Œ m๊ฐœ์˜ ์ค„์—๋Š” ๊ฐ๊ฐ์˜ ์—ฐ์‚ฐ์ด ์ฃผ์–ด์ง„๋‹ค. ํ•ฉ์ง‘ํ•ฉ์€ 0 a b์˜ ํ˜•ํƒœ๋กœ ์ž…๋ ฅ์ด ์ฃผ์–ด์ง„๋‹ค. ์ด๋Š” www.acmicpc.net ์ด์ฝ”ํ…Œ์—์„œ ํ’€์—ˆ๋˜ ๋ฌธ์ œ ๊ทธ๋Œ€๋กœ ๋‚˜์™”๋‹ค. https://sssbin.tistory.com/193 ๊ทธ๋ž˜์„œ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋‹ค์‹œ ์ •๋ฆฌํ•œ๋‹ค๋Š” ๋งˆ์Œ์œผ๋กœ ๋‚ด ์†์œผ๋กœ ์ง์ ‘ ํ’€์—ˆ์ง€๋งŒ ,, ์‹œ๊ฐ„ ์ดˆ๊ณผ๋กœ ์‹คํŒจ def find_parent(parent, x): if parent[x] != x: parent[x] = find_parent(parent, parent[x]) return ..

๋ฐฑ์ค€ 11657: ํƒ€์ž„๋จธ์‹  (Python)

https://www.acmicpc.net/problem/11657 11657๋ฒˆ: ํƒ€์ž„๋จธ์‹  ์ฒซ์งธ ์ค„์— ๋„์‹œ์˜ ๊ฐœ์ˆ˜ N (1 โ‰ค N โ‰ค 500), ๋ฒ„์Šค ๋…ธ์„ ์˜ ๊ฐœ์ˆ˜ M (1 โ‰ค M โ‰ค 6,000)์ด ์ฃผ์–ด์ง„๋‹ค. ๋‘˜์งธ ์ค„๋ถ€ํ„ฐ M๊ฐœ์˜ ์ค„์—๋Š” ๋ฒ„์Šค ๋…ธ์„ ์˜ ์ •๋ณด A, B, C (1 โ‰ค A, B โ‰ค N, -10,000 โ‰ค C โ‰ค 10,000)๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. www.acmicpc.net ์ฒ˜์Œ์—” ์˜ˆ์ œ๋ฅผ ๋ด๋„ ๋ฌธ์ œ๊ฐ€ ์ดํ•ด๊ฐ€ ์ž˜ ์•ˆ ๊ฐ”์—ˆ๋‹ค. ๊ทธ๋ž˜์„œ ๊ด€๋ จ ๊ธ€๋“ค์„ ์ฐพ์•„๋ณด๋‹ค๊ฐ€,, ๋ฒจ๋งŒ-ํฌ๋“œ ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด๋ผ๋Š” ๊ฒƒ์„ ์•Œ์•˜๋‹ค. ์ด ๋ฌธ์ œ๋Š” ์Œ์ˆ˜ ๊ฐ„์„ ์ด ์กด์žฌํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์‚ฌ์ดํด์„ ์ˆœํ™˜ํ• ์ˆ˜๋ก ๊ฐ€์ค‘์น˜๊ฐ€ ๊ฐ์†Œํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค. ๋”ฐ๋ผ์„œ ์ผ๋ฐ˜์ ์ธ ๋‹ค์ต์ŠคํŠธ๋ผ ์•Œ๊ณ ๋ฆฌ์ฆ˜์œผ๋กœ ํ’€ ์ˆ˜ ์—†๊ณ , ๋ฒจ๋งŒ-ํฌ๋“œ ์•Œ๊ณ ๋ฆฌ์ฆ˜์œผ๋กœ ํ’€์–ด์•ผ ํ•œ๋‹ค. ์˜ˆ์ œ2๋ฅผ ๋ณด๋ฉด ์‚ฌ์ดํด์„ ๊ณ„์† ..

๋ฐฑ์ค€ 1504: ํŠน์ •ํ•œ ์ตœ๋‹จ ๊ฒฝ๋กœ (Python)

https://www.acmicpc.net/problem/1504 1504๋ฒˆ: ํŠน์ •ํ•œ ์ตœ๋‹จ ๊ฒฝ๋กœ ์ฒซ์งธ ์ค„์— ์ •์ ์˜ ๊ฐœ์ˆ˜ N๊ณผ ๊ฐ„์„ ์˜ ๊ฐœ์ˆ˜ E๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. (2 โ‰ค N โ‰ค 800, 0 โ‰ค E โ‰ค 200,000) ๋‘˜์งธ ์ค„๋ถ€ํ„ฐ E๊ฐœ์˜ ์ค„์— ๊ฑธ์ณ์„œ ์„ธ ๊ฐœ์˜ ์ •์ˆ˜ a, b, c๊ฐ€ ์ฃผ์–ด์ง€๋Š”๋ฐ, a๋ฒˆ ์ •์ ์—์„œ b๋ฒˆ ์ •์ ๊นŒ์ง€ ์–‘๋ฐฉํ–ฅ ๊ธธ์ด ์กด www.acmicpc.net ๋ฐ˜๋“œ์‹œ ํ†ต๊ณผํ•ด์•ผ๋งŒ ํ•˜๋Š” ์ •์ ์ด ์žˆ๊ธฐ ๋•Œ๋ฌธ์— 1 -> v1 -> v2 -> n 1 -> v2 -> v1 -> n ๋‹ค์ต์ŠคํŠธ๋ผ๋ฅผ ์„ธ๋ฒˆ(1๋ฒˆ ์ถœ๋ฐœ, v1 ์ถœ๋ฐœ, v2 ์ถœ๋ฐœ) ๋Œ๋ ค์„œ ๋‘ ๊ฐ’ ์ค‘์— ์ตœ์†Œ๊ฐ’์„ ์ฐพ์•„์ฃผ๋ฉด ๋œ๋‹ค ์ฒ˜์Œ์— ์‹คํŒจํ•ด์„œ ์ฐพ์•„๋ณด๋‹ˆ๊นŒ ๊ฐ’์„ ์„ธ๋ฒˆ ๋”ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋ฌดํ•œ๊ฐ’์„ ์ค„์—ฌ์ฃผ๋ฉด ๋œ๋‹ค๊ณ  ํ•ด์„œ ์ค„์˜€๋Š”๋ฐ (1e9 -> 1e8) ์—ฌ์ „ํžˆ ํ‹€๋ฆผ,,,, ์ž์„ธํžˆ ๋ณด๋‹ˆ..

๋ฐฑ์ค€ 1753: ์ตœ๋‹จ๊ฒฝ๋กœ (Python)

https://www.acmicpc.net/problem/1753 1753๋ฒˆ: ์ตœ๋‹จ๊ฒฝ๋กœ ์ฒซ์งธ ์ค„์— ์ •์ ์˜ ๊ฐœ์ˆ˜ V์™€ ๊ฐ„์„ ์˜ ๊ฐœ์ˆ˜ E๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. (1 โ‰ค V โ‰ค 20,000, 1 โ‰ค E โ‰ค 300,000) ๋ชจ๋“  ์ •์ ์—๋Š” 1๋ถ€ํ„ฐ V๊นŒ์ง€ ๋ฒˆํ˜ธ๊ฐ€ ๋งค๊ฒจ์ ธ ์žˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•œ๋‹ค. ๋‘˜์งธ ์ค„์—๋Š” ์‹œ์ž‘ ์ •์ ์˜ ๋ฒˆํ˜ธ K(1 โ‰ค K โ‰ค V)๊ฐ€ www.acmicpc.net import heapq import sys input = sys.stdin.readline INF = int(1e9) v, e = map(int, input().split()) k = int(input()) graph = [[] for i in range(v+1)] distance = [INF] * (v+1) for _ in range(e): x, y, w =..

๋ฐฑ์ค€ 12865: ํ‰๋ฒ”ํ•œ ๋ฐฐ๋‚ญ (Python)

https://www.acmicpc.net/problem/12865 12865๋ฒˆ: ํ‰๋ฒ”ํ•œ ๋ฐฐ๋‚ญ ์ฒซ ์ค„์— ๋ฌผํ’ˆ์˜ ์ˆ˜ N(1 โ‰ค N โ‰ค 100)๊ณผ ์ค€์„œ๊ฐ€ ๋ฒ„ํ‹ธ ์ˆ˜ ์žˆ๋Š” ๋ฌด๊ฒŒ K(1 โ‰ค K โ‰ค 100,000)๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. ๋‘ ๋ฒˆ์งธ ์ค„๋ถ€ํ„ฐ N๊ฐœ์˜ ์ค„์— ๊ฑฐ์ณ ๊ฐ ๋ฌผ๊ฑด์˜ ๋ฌด๊ฒŒ W(1 โ‰ค W โ‰ค 100,000)์™€ ํ•ด๋‹น ๋ฌผ๊ฑด์˜ ๊ฐ€์น˜ V(0 โ‰ค V โ‰ค 1,000) www.acmicpc.net n, k = map(int, input().split()) d = [[0 for _ in range(k+1)] for _ in range(n)] for i in range(n): w, v = map(int, input().split()) for j in range(1, k+1): if j < w: d[i][j] = d[i-1][j]..

๋ฐฑ์ค€ 1912: ์—ฐ์†ํ•ฉ (Python)

https://www.acmicpc.net/problem/1912 1912๋ฒˆ: ์—ฐ์†ํ•ฉ ์ฒซ์งธ ์ค„์— ์ •์ˆ˜ n(1 โ‰ค n โ‰ค 100,000)์ด ์ฃผ์–ด์ง€๊ณ  ๋‘˜์งธ ์ค„์—๋Š” n๊ฐœ์˜ ์ •์ˆ˜๋กœ ์ด๋ฃจ์–ด์ง„ ์ˆ˜์—ด์ด ์ฃผ์–ด์ง„๋‹ค. ์ˆ˜๋Š” -1,000๋ณด๋‹ค ํฌ๊ฑฐ๋‚˜ ๊ฐ™๊ณ , 1,000๋ณด๋‹ค ์ž‘๊ฑฐ๋‚˜ ๊ฐ™์€ ์ •์ˆ˜์ด๋‹ค. www.acmicpc.net n = int(input()) a = list(map(int, input().split())) d = [-1000] * n d[0] = a[0] for i in range(1, n): d[i] = max(d[i-1] + a[i], a[i]) print(max(d))

๋ฐฑ์ค€ 11053: ๊ฐ€์žฅ ๊ธด ์ฆ๊ฐ€ํ•˜๋Š” ๋ถ€๋ถ„ ์ˆ˜์—ด (Python)

https://www.acmicpc.net/problem/11053 11053๋ฒˆ: ๊ฐ€์žฅ ๊ธด ์ฆ๊ฐ€ํ•˜๋Š” ๋ถ€๋ถ„ ์ˆ˜์—ด ์ˆ˜์—ด A๊ฐ€ ์ฃผ์–ด์กŒ์„ ๋•Œ, ๊ฐ€์žฅ ๊ธด ์ฆ๊ฐ€ํ•˜๋Š” ๋ถ€๋ถ„ ์ˆ˜์—ด์„ ๊ตฌํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์‹œ์˜ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ์ˆ˜์—ด A = {10, 20, 10, 30, 20, 50} ์ธ ๊ฒฝ์šฐ์— ๊ฐ€์žฅ ๊ธด ์ฆ๊ฐ€ํ•˜๋Š” ๋ถ€๋ถ„ ์ˆ˜์—ด์€ A = {10, 20, 10, 30, 20, 50} ์ด www.acmicpc.net ์˜ˆ์ œ) n=6, A=[10, 20, 10, 30, 20, 50] -> ๊ธธ์ด 4 ์ฒ˜์Œ์— ๋ฆฌ์ŠคํŠธ ์ดˆ๊ธฐํ™” d=[1, 1, 1, 1, 1, 1] for๋ฌธ์„ ๋Œ๋ฉด์„œ ์ฐจ๋ก€๋Œ€๋กœ ๊ฐ ์ธ๋ฑ์Šค๊นŒ์ง€์˜ ์ž…๋ ฅ๋ฐ›์€ ๋ฐฐ์—ด ๊ฐ’์„ ๋น„๊ตํ•ด์„œ ๋” ํฌ๋ฉด ์ตœ๋Œ“๊ฐ’ +1 1. 10 20 10 30 20 50 1 1 1 1 1 1 2. 10 < 20 ์ด๋ฏ€๋กœ d[..

๋ฐฑ์ค€ 2156: ํฌ๋„์ฃผ ์‹œ์‹ (Python)

https://www.acmicpc.net/problem/2156 2156๋ฒˆ: ํฌ๋„์ฃผ ์‹œ์‹ ํšจ์ฃผ๋Š” ํฌ๋„์ฃผ ์‹œ์‹ํšŒ์— ๊ฐ”๋‹ค. ๊ทธ ๊ณณ์— ๊ฐ”๋”๋‹ˆ, ํ…Œ์ด๋ธ” ์œ„์— ๋‹ค์–‘ํ•œ ํฌ๋„์ฃผ๊ฐ€ ๋“ค์–ด์žˆ๋Š” ํฌ๋„์ฃผ ์ž”์ด ์ผ๋ ฌ๋กœ ๋†“์—ฌ ์žˆ์—ˆ๋‹ค. ํšจ์ฃผ๋Š” ํฌ๋„์ฃผ ์‹œ์‹์„ ํ•˜๋ ค๊ณ  ํ•˜๋Š”๋ฐ, ์—ฌ๊ธฐ์—๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋‘ ๊ฐ€์ง€ ๊ทœ www.acmicpc.net n = int(input()) a = [0] for _ in range(n): a.append(int(input())) d = [0] * (n+1) d[1] = a[1] if n >= 2: d[2] = a[1] + a[2] for i in range(3, n+1): d[i] = max(d[i-1], d[i-2] + a[i], d[i-3] + a[i-1] + a[i]) print(d[n])

๋ฐฑ์ค€ 10844: ์‰ฌ์šด ๊ณ„๋‹จ ์ˆ˜ (Python)

https://www.acmicpc.net/problem/10844 10844๋ฒˆ: ์‰ฌ์šด ๊ณ„๋‹จ ์ˆ˜ ์ฒซ์งธ ์ค„์— ์ •๋‹ต์„ 1,000,000,000์œผ๋กœ ๋‚˜๋ˆˆ ๋‚˜๋จธ์ง€๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค. www.acmicpc.net n = int(input()) stair = [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0] for _ in range(n+1)] stair[1] = [0, 1, 1, 1, 1, 1, 1, 1, 1, 1] for i in range(2, n+1): for j in range(10): if j == 0: stair[i][0] = stair[i-1][1] elif j == 9: stair[i][9] = stair[i-1][8] else: stair[i][j] = stair[i-1][j-1] + stair[..

๋ฐฑ์ค€ 1463: 1๋กœ ๋งŒ๋“ค๊ธฐ (Python)

https://www.acmicpc.net/problem/1463 1463๋ฒˆ: 1๋กœ ๋งŒ๋“ค๊ธฐ ์ฒซ์งธ ์ค„์— 1๋ณด๋‹ค ํฌ๊ฑฐ๋‚˜ ๊ฐ™๊ณ , 106๋ณด๋‹ค ์ž‘๊ฑฐ๋‚˜ ๊ฐ™์€ ์ •์ˆ˜ N์ด ์ฃผ์–ด์ง„๋‹ค. www.acmicpc.net ์ฑ„์ ํ•˜๋Š”๋ฐ 2๋ถ„ ๊ฑธ๋ ค์„œ ์ข€ ์ซ„์•˜๋‹ค ใ…‹ ์ธ๋ฑ์Šค ์—๋Ÿฌ ๋ฐฉ์ง€๋ฅผ ์œ„ํ•ด ๋ฐฐ์—ด์„ n์˜ ์ˆ˜๋งŒํผ ์„ค์ •ํ•ด์คŒ. n = int(input()) d = [0] * 1000001 d[2] = 1 d[3] = 1 for i in range(4, n+1): d[i] = d[i-1] + 1 if i % 3 == 0: d[i] = min(d[i//3] + 1, d[i]) if i % 2 == 0: d[i] = min(d[i//2] + 1, d[i]) print(d[n])