๐Ÿค– 155

๋ฐฑ์ค€ 9461: ํŒŒ๋„๋ฐ˜ ์ˆ˜์—ด (Python)

https://www.acmicpc.net/problem/9461 9461๋ฒˆ: ํŒŒ๋„๋ฐ˜ ์ˆ˜์—ด ์˜ค๋ฅธ์ชฝ ๊ทธ๋ฆผ๊ณผ ๊ฐ™์ด ์‚ผ๊ฐํ˜•์ด ๋‚˜์„  ๋ชจ์–‘์œผ๋กœ ๋†“์—ฌ์ ธ ์žˆ๋‹ค. ์ฒซ ์‚ผ๊ฐํ˜•์€ ์ •์‚ผ๊ฐํ˜•์œผ๋กœ ๋ณ€์˜ ๊ธธ์ด๋Š” 1์ด๋‹ค. ๊ทธ ๋‹ค์Œ์—๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ณผ์ •์œผ๋กœ ์ •์‚ผ๊ฐํ˜•์„ ๊ณ„์† ์ถ”๊ฐ€ํ•œ๋‹ค. ๋‚˜์„ ์—์„œ ๊ฐ€์žฅ ๊ธด ๋ณ€์˜ www.acmicpc.net ๋ฌด์ž‘์ • ๊ทธ๋ ค๋†“๊ณ  ๊ทœ์น™์„ ์ฐพ์•˜๋‹ค ์ฒ˜์Œ์—” ์‚ผ๊ฐํ˜•์ด ์ƒ๊ธฐ๋Š” ์ˆœ์„œ๋Œ€๋กœ ๊ทœ์น™์„ ๊ณ„์‚ฐํ–ˆ๋‹ค๊ฐ€ [์ธ๋ฑ์Šค-2] + [์ธ๋ฑ์Šค-3] ์œผ๋กœ๋„ ๊ณ„์‚ฐ์ด ๋œ๋‹ค๋Š” ๊ฑธ ์ฐพ์Œ d = [0] * 101 d[1], d[2], d[3] = 1, 1, 1 for i in range(4, 101): d[i] = d[i-2] + d[i-3] t = int(input()) for i in range(t): n = int(input()) print..

๋ฐฑ์ค€ 1904: 01ํƒ€์ผ (Python)

https://www.acmicpc.net/problem/1904 1904๋ฒˆ: 01ํƒ€์ผ ์ง€์›์ด์—๊ฒŒ 2์ง„ ์ˆ˜์—ด์„ ๊ฐ€๋ฅด์ณ ์ฃผ๊ธฐ ์œ„ํ•ด, ์ง€์›์ด ์•„๋ฒ„์ง€๋Š” ๊ทธ์—๊ฒŒ ํƒ€์ผ๋“ค์„ ์„ ๋ฌผํ•ด์ฃผ์…จ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ด ๊ฐ๊ฐ์˜ ํƒ€์ผ๋“ค์€ 0 ๋˜๋Š” 1์ด ์“ฐ์—ฌ ์žˆ๋Š” ๋‚ฑ์žฅ์˜ ํƒ€์ผ๋“ค์ด๋‹ค. ์–ด๋А ๋‚  ์ง“๊ถ‚์€ ๋™์ฃผ๊ฐ€ ์ง€์›์ด www.acmicpc.net ํ”ผ๋ณด๋‚˜์น˜ ์ˆ˜์—ด์ด๋ž‘ ๋˜‘๊ฐ™์€ ๊ฐ„๋‹จํ•œ ๋ฌธ์ œ์˜€๋‹ค ๊ทธ๋Ÿฌ๋‚˜... ์ฒซ ๋ฒˆ์งธ ์ฝ”๋“œ - ๋ฉ”๋ชจ๋ฆฌ ์ดˆ๊ณผ n = int(input()) d = [0] * (n + 1) d[1] = 1 d[2] = 2 for i in range(3, n+1): d[i] = d[i-1] + d[i-2] print(d[n] % 15746) ๋‘ ๋ฒˆ์งธ ์ฝ”๋“œ - ๋‚˜๋จธ์ง€ ๊ณ„์‚ฐ์„ ๋ฐ˜๋ณต๋ฌธ ์•ˆ์— ๋„ฃ์–ด์คŒ. ๋Ÿฐํƒ€์ž„ ์—๋Ÿฌ n์ด 1์ผ ๋•Œ d[2] = 2์—์„œ ์ธ๋ฑ์Šค..

๋ฐฑ์ค€ 1003: ํ”ผ๋ณด๋‚˜์น˜ ํ•จ์ˆ˜ (Python)

https://www.acmicpc.net/problem/1003 1003๋ฒˆ: ํ”ผ๋ณด๋‚˜์น˜ ํ•จ์ˆ˜ ๊ฐ ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค๋งˆ๋‹ค 0์ด ์ถœ๋ ฅ๋˜๋Š” ํšŸ์ˆ˜์™€ 1์ด ์ถœ๋ ฅ๋˜๋Š” ํšŸ์ˆ˜๋ฅผ ๊ณต๋ฐฑ์œผ๋กœ ๊ตฌ๋ถ„ํ•ด์„œ ์ถœ๋ ฅํ•œ๋‹ค. www.acmicpc.net ์ฒ˜์Œ ์ฝ”๋“œ - ๊ฑ ๋ƒ…๋‹ค ๊ณ„์‚ฐ.. ๋‹น์—ฐํžˆ ์‹œ๊ฐ„ ์ดˆ๊ณผ ๋‚  ์ค„ ์•Œ์•˜์Œ def fib(n): d = [0] * (n + 1) if n == 0: count[0] += 1 return 1 if n == 1: count[1] += 1 return 1 d[n] = fib(n - 1) + fib(n - 2) return d[n] t = int(input()) for i in range(t): n = int(input()) count = [0, 0] fib(n) print(count[0], count[1]) ..

๋™์  ๊ณ„ํš๋ฒ• (Dynamic Programming)

์ค‘๋ณต๋˜๋Š” ์—ฐ์‚ฐ์„ ์ค„์ด์ž - ์–ด๋–ค ๋ฌธ์ œ๋Š” ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์„ ์•ฝ๊ฐ„ ๋” ์‚ฌ์šฉํ•˜๋ฉด ์—ฐ์‚ฐ ์†๋„๋ฅผ ๋น„์•ฝ์ ์œผ๋กœ ์ฆ๊ฐ€์‹œํ‚ฌ ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์ด ์žˆ๋‹ค. - ๋‹ค์ด๋‚˜๋ฏน ํ”„๋กœ๊ทธ๋ž˜๋ฐ์œผ๋กœ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋Š” ๋Œ€ํ‘œ์ ์ธ ์˜ˆ์‹œ๋กœ๋Š” ํ”ผ๋ณด๋‚˜์น˜ ์ˆ˜์—ด์ด ์žˆ๋‹ค. - ์ˆ˜ํ•™์  ์ ํ™”์‹์„ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์œผ๋กœ ํ‘œํ˜„ํ•˜๋ ค๋ฉด ์žฌ๊ท€ ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๊ฐ„๋‹จํ•˜๋‹ค. # ํ”ผ๋ณด๋‚˜์น˜ ํ•จ์ˆ˜๋ฅผ ์žฌ๊ท€ ํ•จ์ˆ˜๋กœ ๊ตฌํ˜„ def fibo(x): if x == 1 or x == 2: return 1 return fibo(x-1) + fibo(x-2) print(fibo(4)) - ๊ทธ๋Ÿฐ๋ฐ ํ”ผ๋ณด๋‚˜์น˜ ์ˆ˜์—ด์˜ ์†Œ์Šค์ฝ”๋“œ๋ฅผ ์ด๋ ‡๊ฒŒ ์ž‘์„ฑํ•˜๋ฉด ์‹ฌ๊ฐํ•œ ๋ฌธ์ œ๊ฐ€ ์ƒ๊ธธ ์ˆ˜ ์žˆ๋‹ค. - f(n) ํ•จ์ˆ˜์—์„œ n์ด ์ปค์ง€๋ฉด ์ปค์งˆ์ˆ˜๋ก ์ˆ˜ํ–‰ ์‹œ๊ฐ„์ด ๊ธฐํ•˜๊ธ‰์ˆ˜์ ์œผ๋กœ ๋Š˜์–ด๋‚˜๊ธฐ ๋•Œ๋ฌธ! -> O(2^N) - ํ”ผ๋ณด๋‚˜์น˜ ์ˆ˜์—ด์˜ ํ˜ธ์ถœ ๊ณผ์ •์„ ๊ทธ๋ฆผ์„ ๊ทธ๋ ค..

๋ฐฑ์ค€ 1300: K๋ฒˆ์งธ ์ˆ˜ (Python)

https://www.acmicpc.net/problem/1300 1300๋ฒˆ: K๋ฒˆ์งธ ์ˆ˜ ์„ธ์ค€์ด๋Š” ํฌ๊ธฐ๊ฐ€ N×N์ธ ๋ฐฐ์—ด A๋ฅผ ๋งŒ๋“ค์—ˆ๋‹ค. ๋ฐฐ์—ด์— ๋“ค์–ด์žˆ๋Š” ์ˆ˜ A[i][j] = i×j ์ด๋‹ค. ์ด ์ˆ˜๋ฅผ ์ผ์ฐจ์› ๋ฐฐ์—ด B์— ๋„ฃ์œผ๋ฉด B์˜ ํฌ๊ธฐ๋Š” N×N์ด ๋œ๋‹ค. B๋ฅผ ์˜ค๋ฆ„์ฐจ์ˆœ ์ •๋ ฌํ–ˆ์„ ๋•Œ, B[k]๋ฅผ ๊ตฌํ•ด๋ณด์ž. ๋ฐฐ์—ด A์™€ B www.acmicpc.net ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ž์ฒด๋Š” ์‰ฌ์šฐ๋‚˜ ๋ฌธ์ œ ํ’€์ด๋ฅผ ์ดํ•ดํ•˜๋Š” ๊ณผ์ •์ด ๋„ˆ๋ฌด ์–ด๋ ค์› ๋‹ค ๊ทธ๋ž˜์„œ ์ผ์ฃผ์ผ ์ „ ์ฏค์— ํ’€๋‹ค๊ฐ€ ๊ทธ ์ƒํƒœ๋กœ ๋ฐฉ์น˜ํ•˜๊ณ  ์˜ค๋Š˜ ๋‹ค์‹œ ํ•จ..ใ…‹ใ…‹ใ…‹ 2์ฐจ์› ๋ฐฐ์—ด -> 1์ฐจ์› ๋ฐฐ์—ด๋กœ ๋ฐ”๊พธ๋Š” ๋น„ํšจ์œจ์ ์ธ ๋ฐฉ๋ฒ•๋ฐ–์— ์ƒ๊ฐ์ด ๋‚˜์งˆ ์•Š์•„์„œ ๋‹ค๋ฅธ ์‚ฌ๋žŒ๋“ค ํ’€์ด ์ฐธ๊ณ ํ•ด์„œ ํ’€์—ˆ๋Š”๋ฐ ๊ทธ๋งˆ์ €๋„ ์ดํ•ด๊ฐ€ ์•ˆ ๊ฐ€์„œ ์˜ค๋žซ๋™์•ˆ ๋™๋™ ์•“์•˜๋‹คใ…  n = int(input()) k = int(input()) sta..

๋ฐฑ์ค€ 2110: ๊ณต์œ ๊ธฐ ์„ค์น˜ (Python)

https://www.acmicpc.net/problem/2110 2110๋ฒˆ: ๊ณต์œ ๊ธฐ ์„ค์น˜ ์ฒซ์งธ ์ค„์— ์ง‘์˜ ๊ฐœ์ˆ˜ N (2 ≤ N ≤ 200,000)๊ณผ ๊ณต์œ ๊ธฐ์˜ ๊ฐœ์ˆ˜ C (2 ≤ C ≤ N)์ด ํ•˜๋‚˜ ์ด์ƒ์˜ ๋นˆ ์นธ์„ ์‚ฌ์ด์— ๋‘๊ณ  ์ฃผ์–ด์ง„๋‹ค. ๋‘˜์งธ ์ค„๋ถ€ํ„ฐ N๊ฐœ์˜ ์ค„์—๋Š” ์ง‘์˜ ์ขŒํ‘œ๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” xi (0 ≤ xi ≤ 1,000,000,000)๊ฐ€ www.acmicpc.net ์ฒซ ์ œ์ถœ์€ ์‹œ๊ฐ„ ์ดˆ๊ณผ๊ฐ€ ๋–ด๋‹ค.. ์ž…๋ ฅ๋ฐ›๋Š” ๋ถ€๋ถ„๋งŒ sys.stdin.readline()์œผ๋กœ ๋ฐ”๊ฟ”์ฃผ๋‹ˆ๊นŒ ํ†ต๊ณผํ•จ import sys n, c = map(int, sys.stdin.readline().split()) house = [int(sys.stdin.readline()) for _ in range(n)] house.sort() start = 1 ..

๋ฐฑ์ค€ 2805: ๋‚˜๋ฌด ์ž๋ฅด๊ธฐ (Python)

https://www.acmicpc.net/problem/2805 2805๋ฒˆ: ๋‚˜๋ฌด ์ž๋ฅด๊ธฐ ์ฒซ์งธ ์ค„์— ๋‚˜๋ฌด์˜ ์ˆ˜ N๊ณผ ์ƒ๊ทผ์ด๊ฐ€ ์ง‘์œผ๋กœ ๊ฐ€์ ธ๊ฐ€๋ ค๊ณ  ํ•˜๋Š” ๋‚˜๋ฌด์˜ ๊ธธ์ด M์ด ์ฃผ์–ด์ง„๋‹ค. (1 ≤ N ≤ 1,000,000, 1 ≤ M ≤ 2,000,000,000) ๋‘˜์งธ ์ค„์—๋Š” ๋‚˜๋ฌด์˜ ๋†’์ด๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. ๋‚˜๋ฌด์˜ ๋†’์ด์˜ ํ•ฉ์€ ํ•ญ์ƒ M๋ณด www.acmicpc.net ์ด์ง„ํƒ์ƒ‰ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๊ณต๋ถ€ํ•˜๋ฉด์„œ ํ’€์—ˆ๋˜ ๋ฌธ์ œ๋ž‘ ๋˜‘๊ฐ™๋„ค! ํ•˜๊ณ  ํ›„๋‹ค๋‹ฅ ํ’€์—ˆ์ง€๋งŒ 50%์—์„œ ์‹œ๊ฐ„ ์ดˆ๊ณผ.. ์‹œ๊ฐ„์„ ์ค„์ด๊ณ ์ž ์ด๋ฆฌ์ €๋ฆฌ ๊ณ ์ณ๋ดค์ง€๋งŒ ๋”์ด์ƒ ๊ณ ์น ๊ฒŒ ์—†๋Š” ๊ฑฐ ๊ฐ™์€๋ฐ๋„ ์‹œ๊ฐ„ ์ดˆ๊ณผ.. ๊ฒฐ๊ตญ ๊ตฌ๊ธ€๋ง.. ์ด์ง„ ํƒ์ƒ‰์œผ๋กœ ํ’€๋ฉด pypy3๋กœ ์ œ์ถœํ•ด์•ผ ์‹œ๊ฐ„์ดˆ๊ณผ๊ฐ€ ๋œจ์ง€ ์•Š๋Š”๋‹ค๊ณ  ํ•œ๋‹คใ…  Counter ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์“ฐ๋ฉด python3๋„ ํ†ต๊ณผ๋œ๋‹ค๊ณ  ํ•˜๊ธด ํ•จ.. import sys ..

๋ฐฑ์ค€ 1654: ๋žœ์„  ์ž๋ฅด๊ธฐ (Python)

https://www.acmicpc.net/problem/1654 1654๋ฒˆ: ๋žœ์„  ์ž๋ฅด๊ธฐ ์ฒซ์งธ ์ค„์—๋Š” ์˜ค์˜์‹์ด ์ด๋ฏธ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ๋žœ์„ ์˜ ๊ฐœ์ˆ˜ K, ๊ทธ๋ฆฌ๊ณ  ํ•„์š”ํ•œ ๋žœ์„ ์˜ ๊ฐœ์ˆ˜ N์ด ์ž…๋ ฅ๋œ๋‹ค. K๋Š” 1์ด์ƒ 10,000์ดํ•˜์˜ ์ •์ˆ˜์ด๊ณ , N์€ 1์ด์ƒ 1,000,000์ดํ•˜์˜ ์ •์ˆ˜์ด๋‹ค. ๊ทธ๋ฆฌ๊ณ  ํ•ญ์ƒ K โ‰ฆ N ์ด๋‹ค. ๊ทธ www.acmicpc.net ์ฒ˜์Œ์—” ์ œ์ผ ์ž‘์€ ์ˆ˜๋ถ€ํ„ฐ ์‹œ์ž‘ํ•ด์„œ ์ ์  ๊ธธ์ด๋ฅผ ์ค„์ด๋ฉด์„œ ์ž˜๋ผ๋‚ด๊ณ  ์ž๋ฅธ ๊ฐœ์ˆ˜ >= N ์ด๋ฉด ๋ฉˆ์ถ”๋Š” ๋ฐฉ์‹์œผ๋กœ ์ฝ”๋“œ๋ฅผ ์งฐ๋Š”๋ฐ ํ‹€๋ ธ๋‹ค. # ํ‹€๋ฆผ import sys k, n = map(int, sys.stdin.readline().split()) cable = [] for i in range(k): cable.append(int(sys.stdin.readline())) len..

๋ฐฑ์ค€ 10816: ์ˆซ์ž ์นด๋“œ 2 (Python)

https://www.acmicpc.net/problem/10816 10816๋ฒˆ: ์ˆซ์ž ์นด๋“œ 2 ์ฒซ์งธ ์ค„์— ์ƒ๊ทผ์ด๊ฐ€ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ์ˆซ์ž ์นด๋“œ์˜ ๊ฐœ์ˆ˜ N(1 ≤ N ≤ 500,000)์ด ์ฃผ์–ด์ง„๋‹ค. ๋‘˜์งธ ์ค„์—๋Š” ์ˆซ์ž ์นด๋“œ์— ์ ํ˜€์žˆ๋Š” ์ •์ˆ˜๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. ์ˆซ์ž ์นด๋“œ์— ์ ํ˜€์žˆ๋Š” ์ˆ˜๋Š” -10,000,000๋ณด๋‹ค ํฌ๊ฑฐ๋‚˜ ๊ฐ™๊ณ , 10, www.acmicpc.net ์ฑ„์ ํ•˜๋Š”๋ฐ๋งŒ 1๋ถ„ 30์ดˆ๋Š” ๊ฑธ๋ ค์„œ ๋‚˜ ์ฒ˜์Œ์— ์‹œ๊ฐ„ ์ดˆ๊ณผ ๋œจ๋Š” ์ค„^^,, import sys n = int(input()) card = sorted(map(int, sys.stdin.readline().split())) m = int(input()) find = list(map(int, sys.stdin.readline().split())) dict_card = d..

๋ฐฑ์ค€ 1920: ์ˆ˜ ์ฐพ๊ธฐ (Python)

https://www.acmicpc.net/problem/1920 1920๋ฒˆ: ์ˆ˜ ์ฐพ๊ธฐ ์ฒซ์งธ ์ค„์— ์ž์—ฐ์ˆ˜ N(1 ≤ N ≤ 100,000)์ด ์ฃผ์–ด์ง„๋‹ค. ๋‹ค์Œ ์ค„์—๋Š” N๊ฐœ์˜ ์ •์ˆ˜ A[1], A[2], …, A[N]์ด ์ฃผ์–ด์ง„๋‹ค. ๋‹ค์Œ ์ค„์—๋Š” M(1 ≤ M ≤ 100,000)์ด ์ฃผ์–ด์ง„๋‹ค. ๋‹ค์Œ ์ค„์—๋Š” M๊ฐœ์˜ ์ˆ˜๋“ค์ด ์ฃผ์–ด์ง€๋Š”๋ฐ, ์ด ์ˆ˜๋“ค www.acmicpc.net ๋ฐ˜๋ณต๋ฌธ์œผ๋กœ ์ด์ง„ํƒ์ƒ‰์„ ํ’€์–ด์ฃผ์—ˆ๋‹ค import sys n = int(sys.stdin.readline().rstrip()) a = list(map(int, sys.stdin.readline().split())) m = int(sys.stdin.readline().rstrip()) b = list(map(int, sys.stdin.readline().s..