๐Ÿ—๏ธ Algorithm 344

๐ŸŸฉ [๋ฐฑ์ค€] [Python] [Gold5] 2225๋ฒˆ_ํ•ฉ ๋ถ„ํ•ด

๋ฌธ์ œ https://www.acmicpc.net/problem/2225 2225๋ฒˆ: ํ•ฉ๋ถ„ํ•ด ์ฒซ์งธ ์ค„์— ๋‹ต์„ 1,000,000,000์œผ๋กœ ๋‚˜๋ˆˆ ๋‚˜๋จธ์ง€๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค. www.acmicpc.net ํ’€์ด # ๋ฐฑ์ค€ 2225๋ฒˆ ๋ฌธ์ œ - ํ•ฉ๋ถ„ํ•ด import sys input = sys.stdin.readline n, k = map(int, input().split()) dp = [[0]*201 for _ in range(201)] for j in range(201): dp[1][j] = 1 dp[2][j] = j + 1 for i in range(2, 201): dp[i][1] = i for j in range(2, 201): dp[i][j] = (dp[i][j-1] + dp[i-1][j]) % 1000000000 p..

๐ŸŸฉ [๋ฐฑ์ค€] [Python] [Gold5] 1916๋ฒˆ_์ตœ์†Œ๋น„์šฉ ๊ตฌํ•˜๊ธฐ

๋ฌธ์ œ https://www.acmicpc.net/problem/1916 1916๋ฒˆ: ์ตœ์†Œ๋น„์šฉ ๊ตฌํ•˜๊ธฐ ์ฒซ์งธ ์ค„์— ๋„์‹œ์˜ ๊ฐœ์ˆ˜ N(1 ≤ N ≤ 1,000)์ด ์ฃผ์–ด์ง€๊ณ  ๋‘˜์งธ ์ค„์—๋Š” ๋ฒ„์Šค์˜ ๊ฐœ์ˆ˜ M(1 ≤ M ≤ 100,000)์ด ์ฃผ์–ด์ง„๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์…‹์งธ ์ค„๋ถ€ํ„ฐ M+2์ค„๊นŒ์ง€ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋ฒ„์Šค์˜ ์ •๋ณด๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. ๋จผ์ € ์ฒ˜์Œ์—๋Š” ๊ทธ www.acmicpc.net ํ’€์ด # ๋ฐฑ์ค€ 1916๋ฒˆ ๋ฌธ์ œ - ์ตœ์†Œ๋น„์šฉ ๊ตฌํ•˜๊ธฐ import sys import heapq input = sys.stdin.readline n, m= int(input()), int(input()) graph = [[] for _ in range(n+1)] INF = 1e9 distance = [INF] * (n+1) for _ in range(m): a,..

๐ŸŸฉ [๋ฐฑ์ค€] [Python] [Gold5] 5582๋ฒˆ_๊ณตํ†ต ๋ถ€๋ถ„ ๋ฌธ์ž์—ด

๋ฌธ์ œ https://www.acmicpc.net/problem/5582 5582๋ฒˆ: ๊ณตํ†ต ๋ถ€๋ถ„ ๋ฌธ์ž์—ด ๋‘ ๋ฌธ์ž์—ด์ด ์ฃผ์–ด์กŒ์„ ๋•Œ, ๋‘ ๋ฌธ์ž์—ด์— ๋ชจ๋‘ ํฌํ•จ๋œ ๊ฐ€์žฅ ๊ธด ๊ณตํ†ต ๋ถ€๋ถ„ ๋ฌธ์ž์—ด์„ ์ฐพ๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์‹œ์˜ค. ์–ด๋–ค ๋ฌธ์ž์—ด s์˜ ๋ถ€๋ถ„ ๋ฌธ์ž์—ด t๋ž€, s์— t๊ฐ€ ์—ฐ์†์œผ๋กœ ๋‚˜ํƒ€๋‚˜๋Š” ๊ฒƒ์„ ๋งํ•œ๋‹ค. ์˜ˆ๋ฅผ ๋“ค www.acmicpc.net ํ’€์ด # ๋ฐฑ์ค€ 5582๋ฒˆ ๋ฌธ์ œ - ๊ณตํ†ต ๋ถ€๋ถ„ ๋ฌธ์ž์—ด answer = 0 str1, str2 = input(), input() dp=[[0] * (len(str2) + 1) for _ in range(len(str1) + 1)] for i in range(1, len(str1)+1): for j in range(1, len(str2)+1): if (str1[i-1] == str2[j..

๐ŸŸฉ [๋ฐฑ์ค€] [Python] [Silver1] 6588๋ฒˆ_๊ณจ๋“œ๋ฐ”ํ์˜ ์ถ”์ธก

๋ฌธ์ œ https://www.acmicpc.net/problem/6588 6588๋ฒˆ: ๊ณจ๋“œ๋ฐ”ํ์˜ ์ถ”์ธก ๊ฐ ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค์— ๋Œ€ํ•ด์„œ, n = a + b ํ˜•ํƒœ๋กœ ์ถœ๋ ฅํ•œ๋‹ค. ์ด๋•Œ, a์™€ b๋Š” ํ™€์ˆ˜ ์†Œ์ˆ˜์ด๋‹ค. ์ˆซ์ž์™€ ์—ฐ์‚ฐ์ž๋Š” ๊ณต๋ฐฑ ํ•˜๋‚˜๋กœ ๊ตฌ๋ถ„๋˜์–ด์ ธ ์žˆ๋‹ค. ๋งŒ์•ฝ, n์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์ด ์—ฌ๋Ÿฌ ๊ฐ€์ง€๋ผ๋ฉด, b-a๊ฐ€ ๊ฐ€์žฅ ํฐ www.acmicpc.net ํ’€์ด # ๋ฐฑ์ค€ 6588๋ฒˆ ๋ฌธ์ œ - ๊ณจ๋“œ๋ฐ”ํ์˜ ์ถ”์ธก import sys input = sys.stdin.readline n = 1000001 # ์†Œ์ˆ˜ ์•„๋‹Œ ๋ชจ๋“  ํ™€์ˆ˜ ์ฒ˜๋ฆฌ prime = [1] * n for i in range(3, int(n ** 0.5) + 1, 2): if prime[i]: for j in range(i * 2, n, i): prime[j] = 0 ..

๐ŸŸฉ [๋ฐฑ์ค€] [Python] [Gold1] 2042๋ฒˆ_๊ตฌ๊ฐ„ ํ•ฉ ๊ตฌํ•˜๊ธฐ

๋ฌธ์ œ https://www.acmicpc.net/problem/2042 ํ’€์ด # ๋ฐฑ์ค€ 2042๋ฒˆ ๋ฌธ์ œ - ๊ตฌ๊ฐ„ ํ•ฉ ๊ตฌํ•˜๊ธฐ # 0. ์ž…๋ ฅ๋ฐ›๊ธฐ import sys input = sys.stdin.readline n, m, k = map(int,input().split()) arr = [] segment_tree = [0]*(n*4) # 1. ํŠธ๋ฆฌ ๋งŒ๋“ค๊ธฐ def init(start, end, index): # start์™€ end๊ฐ€ ๊ฐ™๋‹ค๋ฉด ๋ฆฌํ”„๋…ธ๋“œ์ด๋‹ค. if start == end: segment_tree[index] = arr[start-1] return segment_tree[index] # ํ˜„์žฌ ๋…ธ๋“œ๋Š” ์™ผ์ชฝ ์•„๋ž˜ ๋…ธ๋“œ์™€ ์˜ค๋ฅธ์ชฝ ์•„๋ž˜ ๋…ธ๋“œ๋ฅผ ๋”ํ•œ ๊ฐ’์ด๋‹ค. mid = (start+end) // 2 segmen..

๐ŸŸฉ [๋ฐฑ์ค€] [Python] [Silver3] 11478๋ฒˆ_์„œ๋กœ ๋‹ค๋ฅธ ๋ถ€๋ถ„ ๋ฌธ์ž์—ด์˜ ๊ฐœ์ˆ˜

๋ฌธ์ œ https://www.acmicpc.net/problem/11478 11478๋ฒˆ: ์„œ๋กœ ๋‹ค๋ฅธ ๋ถ€๋ถ„ ๋ฌธ์ž์—ด์˜ ๊ฐœ์ˆ˜ ์ฒซ์งธ ์ค„์— ๋ฌธ์ž์—ด S๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. S๋Š” ์•ŒํŒŒ๋ฒณ ์†Œ๋ฌธ์ž๋กœ๋งŒ ์ด๋ฃจ์–ด์ ธ ์žˆ๊ณ , ๊ธธ์ด๋Š” 1,000 ์ดํ•˜์ด๋‹ค. www.acmicpc.net ํ’€์ด # ๋ฐฑ์ค€ 11478๋ฒˆ ๋ฌธ์ œ - ์„œ๋กœ ๋‹ค๋ฅธ ๋ถ€๋ถ„ ๋ฌธ์ž์—ด์˜ ๊ฐœ์ˆ˜ string = input() stack = set() for i in range(len(string)): for j in range(i, len(string)): stack.add(string[i:j+1]) print(len(stack))

๐ŸŸฉ [๋ฐฑ์ค€] [Python] [Silver3] 2512๋ฒˆ_์˜ˆ์‚ฐ

๋ฌธ์ œ https://www.acmicpc.net/problem/2512 2512๋ฒˆ: ์˜ˆ์‚ฐ ์ฒซ์งธ ์ค„์—๋Š” ์ง€๋ฐฉ์˜ ์ˆ˜๋ฅผ ์˜๋ฏธํ•˜๋Š” ์ •์ˆ˜ N์ด ์ฃผ์–ด์ง„๋‹ค. N์€ 3 ์ด์ƒ 10,000 ์ดํ•˜์ด๋‹ค. ๋‹ค์Œ ์ค„์—๋Š” ๊ฐ ์ง€๋ฐฉ์˜ ์˜ˆ์‚ฐ์š”์ฒญ์„ ํ‘œํ˜„ํ•˜๋Š” N๊ฐœ์˜ ์ •์ˆ˜๊ฐ€ ๋นˆ์นธ์„ ์‚ฌ์ด์— ๋‘๊ณ  ์ฃผ์–ด์ง„๋‹ค. ์ด ๊ฐ’๋“ค์€ ๋ชจ๋‘ 1 ์ด์ƒ www.acmicpc.net ํ’€์ด # ๋ฐฑ์ค€ 2512๋ฒˆ ๋ฌธ์ œ - ์˜ˆ์‚ฐ n = int(input()) money = list(map(int, input().split())) budget = int(input()) start, end = 0, max(money) def binary(money): start = 0 end = max(money) while start = mid: cnt += mid else: cnt += ..

๐ŸŸฉ [๋ฐฑ์ค€] [Python] [Gold5] 1107๋ฒˆ_๋ฆฌ๋ชจ์ปจ

๋ฌธ์ œ https://www.acmicpc.net/problem/1107 1107๋ฒˆ: ๋ฆฌ๋ชจ์ปจ ์ฒซ์งธ ์ค„์— ์ˆ˜๋นˆ์ด๊ฐ€ ์ด๋™ํ•˜๋ ค๊ณ  ํ•˜๋Š” ์ฑ„๋„ N (0 ≤ N ≤ 500,000)์ด ์ฃผ์–ด์ง„๋‹ค. ๋‘˜์งธ ์ค„์—๋Š” ๊ณ ์žฅ๋‚œ ๋ฒ„ํŠผ์˜ ๊ฐœ์ˆ˜ M (0 ≤ M ≤ 10)์ด ์ฃผ์–ด์ง„๋‹ค. ๊ณ ์žฅ๋‚œ ๋ฒ„ํŠผ์ด ์žˆ๋Š” ๊ฒฝ์šฐ์—๋Š” ์…‹์งธ ์ค„์—๋Š” ๊ณ ์žฅ๋‚œ ๋ฒ„ํŠผ www.acmicpc.net ํ’€์ด # ๋ฐฑ์ค€ 1107๋ฒˆ ๋ฌธ์ œ - ๋ฆฌ๋ชจ์ปจ import sys input = sys.stdin.readline target = int(input()) n = int(input()) broken = list(map(int, input().split())) # ํ˜„์žฌ ์ฑ„๋„์—์„œ + ํ˜น์€ -๋งŒ ์‚ฌ์šฉํ•˜์—ฌ ์ด๋™ํ•˜๋Š” ๊ฒฝ์šฐ cnt = abs(100 - target) for nums in ran..

๐ŸŸฉ [๋ฐฑ์ค€] [Python] [Gold5] 9251๋ฒˆ_LCS

๋ฌธ์ œ https://www.acmicpc.net/problem/9251 9251๋ฒˆ: LCS LCS(Longest Common Subsequence, ์ตœ์žฅ ๊ณตํ†ต ๋ถ€๋ถ„ ์ˆ˜์—ด)๋ฌธ์ œ๋Š” ๋‘ ์ˆ˜์—ด์ด ์ฃผ์–ด์กŒ์„ ๋•Œ, ๋ชจ๋‘์˜ ๋ถ€๋ถ„ ์ˆ˜์—ด์ด ๋˜๋Š” ์ˆ˜์—ด ์ค‘ ๊ฐ€์žฅ ๊ธด ๊ฒƒ์„ ์ฐพ๋Š” ๋ฌธ์ œ์ด๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ACAYKP์™€ CAPCAK์˜ LCS๋Š” ACAK๊ฐ€ ๋œ๋‹ค. www.acmicpc.net ํ’€์ด # ๋ฐฑ์ค€ 9251๋ฒˆ ๋ฌธ์ œ - LCS str1 = ' ' + input() str2 = ' ' + input() dp = [[0]*len(str1) for _ in range(len(str2))] for i in range(1, len(str2)): for j in range(1, len(str1)): if str2[i] == str1[j]: ..

๐ŸŸฉ [๋ฐฑ์ค€] [Python] [Gold5] 1011๋ฒˆ_Fly me to the Alpha Centauri

๋ฌธ์ œ https://www.acmicpc.net/problem/1011 1011๋ฒˆ: Fly me to the Alpha Centauri ์šฐํ˜„์ด๋Š” ์–ด๋ฆฐ ์‹œ์ ˆ, ์ง€๊ตฌ ์™ธ์˜ ๋‹ค๋ฅธ ํ–‰์„ฑ์—์„œ๋„ ์ธ๋ฅ˜๋“ค์ด ์‚ด์•„๊ฐˆ ์ˆ˜ ์žˆ๋Š” ๋ฏธ๋ž˜๊ฐ€ ์˜ค๋ฆฌ๋ผ ๋ฏฟ์—ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๊ทธ๊ฐ€ ์ง€๊ตฌ๋ผ๋Š” ์„ธ์ƒ์— ๋ฐœ์„ ๋‚ด๋ ค ๋†“์€ ์ง€ 23๋…„์ด ์ง€๋‚œ ์ง€๊ธˆ, ์„ธ๊ณ„ ์ตœ์—ฐ์†Œ ASNA ์šฐ์ฃผ ๋น„ํ–‰ www.acmicpc.net ํ’€์ด # ๋ฐฑ์ค€ 1011๋ฒˆ ๋ฌธ์ œ - Fly me to the Alpha Centauri t = int(input()) for _ in range(t): x, y = map(int, input().split()) distance = y - x cnt = 0 move = 1 move_plus = 0 # ์ด๋™ํ•œ ๊ฑฐ๋ฆฌ์˜ ํ•ฉ while move_plus < ..