๐Ÿฏ์•Œ๊ณ ๋ฆฌ์ฆ˜/BOJ

DP๋ฅผ ๊ตฌํ˜„ํ•˜๋Š” ๋ฐฉ๋ฒ•์€ 2๊ฐ€์ง€๊ฐ€ ์กด์žฌํ•œ๋‹ค. Top-downBottom-up๊ตฌํ˜„์žฌ๊ท€๋ฐ˜๋ณต๋ฌธ์ €์žฅ๋ฐฉ์‹๋ฉ”๋ชจ์ด์ œ์ด์…˜ํƒ€๋ทธ๋ ˆ์ด์…˜ Memoization - ํ•„์š”ํ•œ ๋ถ€๋ถ„ ๋ฌธ์ œ๋“ค๋งŒ ๊ตฌํ•˜๊ธฐ๋ถ€๋ถ„ ๋ฌธ์ œ๋“ค์˜ ๋‹ต์„ ํ•œ ๋ฒˆ ๊ตฌํ–ˆ์œผ๋ฉด ๋˜ ๊ตฌํ•˜์ง€ ์•Š๋„๋ก (์ค‘๋ณต์—ฐ์‚ฐ ์—†๋„๋ก) cache์— ์ €์žฅํ•ด๋‘๊ณ  ๋‹ค์Œ์— ๊ฐ–๋‹ค ์“ฐ๊ธฐ Tabulation - ๋ถ€๋ถ„ ๋ฌธ์ œ๋“ค์˜ ๋‹ต์„ ๋ฏธ๋ฆฌ ๋‹ค ๊ตฌํ•ด๋‘๋ฉด ํŽธํ•˜๋‹ค.ํ…Œ์ด๋ธ”์„ ์ฑ„์›Œ๊ฐ„๋‹ค → ํƒ€๋ทธ๋ ˆ์ด์…˜ ๋ฌธ์ œ๋ฅผ ์ชผ๊ฐœ์„œ ์ž‘์€ ๋ฌธ์ œ๋ถ€ํ„ฐ ๊ตฌํ•ด๊ฐ€๋ฉฐ ์›๋ž˜ ๋ฌธ์ œ์˜ ๋‹ต์„ ๊ตฌํ•˜๋Š” ๋ฐฉ์‹์ด๋‹ค.ํ•ต์‹ฌ์€ ์ ํ™”์‹์„ ์ฐพ๊ณ , ํ…Œ์ด๋ธ”๋งŒ ์ž˜ ์ •์˜ํ•˜๋ฉด ํ’€๋ฆฐ๋‹ค. (์ ํ™”์‹ ์ฐพ๊ธฐ๊ฐ€ ์‰ฝ์ง€ ์•Š๋‹ค๋Š”๊ฒŒ ๋ฌธ์ œ ใ…‹ใ…‹) ์ด์ œ ๋ฌธ์ œ๋“ค์„ ํ’€์–ด๋ณด์ž. ๋ฌธ์ œํ’€์ดhttps://koreatstm.tistory.com/148https://koreatstm.tistory.com/149https:/..
https://www.acmicpc.net/problem/10844๊ทœ์น™์„ ๋จผ์ € ์ฐพ์•„๋ณด์ž๋ณธ์ธ์€ A4์šฉ์ง€์— ๊ทธ๋ ค๊ฐ€๋ฉฐ ๊ทœ์น™์„ ์ฐพ์•„๋ณด์•˜๋‹ค.์ธ๋ฑ์Šค๋ฅผ 0๋ถ€ํ„ฐํ•ด์„œ ์ž…๋ ฅ์ด ์ตœ๋Œ€ 100์ด๊ธฐ์—, 100ํ–‰ 10์—ด๋กœ ๋งŒ๋“ค์–ด๋ณธ๋‹ค๋ฉด, ์•„๋ž˜ ์‚ฌ์ง„๊ณผ ๊ฐ™์ด ๋‚˜์˜จ๋‹ค.์จ๋ณด๋‹ˆ ๊ทœ์น™์ด ๋ณด์ธ๋‹ค.1ํ–‰์€ ๋ชจ๋“  ๊ฐ’์ด 1์ด๊ณ , 2ํ–‰๋ถ€ํ„ฐ๋Š” ํŠน๋ณ„ํ•œ ๊ทœ์น™์ด ์ƒ๊ธด๋‹ค.ํ™”์‚ดํ‘œ๋กœ ํ‘œ์‹œํ•ด ๋†“์•˜๋“ฏ 0์—ด์˜ ๊ฐ’์€ ์ด์ „ ํ–‰์˜ 1์—ด์˜ ๊ฐ’์ด๊ณ ,9์—ด์˜ ๊ฐ’์€ ์ด์ „ ํ–‰์˜ 8์—ด์˜ ๊ฐ’์ž„์„ ์•Œ ์ˆ˜ ์žˆ๋‹ค.๋˜ํ•œ ๊ฐ€์šด๋ฐ ๊ฐ’๋“ค์€ ์˜ˆ๋ฅผ๋“ค์–ด 3ํ–‰ 3์—ด์ด๋ผ๊ณ  ํ•˜๋ฉด, ๊ทธ ๊ฐ’์€ 2ํ–‰2์—ด๊ณผ 2ํ–‰4์—ด์˜ ๊ฐ’์˜ ํ•ฉ์ž„์„ ์•Œ ์ˆ˜ ์žˆ๋‹ค.์ด์ œ ํƒ€๋ทธ๋ ˆ์ด์…˜์œผ๋กœ ํ’€์–ด๋ณด์ž n=int(input())cache = [[0]* 10 for _ in range(101)]for i in range(1,101): for j i..
https://www.acmicpc.net/problem/11726๊ทœ์น™์„ ๋จผ์ € ์ฐพ์•„๋ณด์ž๋ณธ์ธ์€ A4์šฉ์ง€์— ๊ทธ๋ ค๊ฐ€๋ฉฐ ๊ทœ์น™์„ ์ฐพ์•„๋ณด์•˜๋‹ค.์ฆ‰, ์ „์— ํ’€์—ˆ๋˜ ๋‚ด์šฉ๊ณผ ๊ฐ™์€ ๋ฐฉ์‹์ด๋‹ค.https://koreatstm.tistory.com/148 [๋ฐฑ์ค€/Python] 2748:ํ”ผ๋ณด๋‚˜์น˜ ์ˆ˜ 2https://www.acmicpc.net/problem/2748n=int(input())def func(n): if n==0: return 0 if n==1: return 1 else: return func(n-1)+func(n-2)print(func(n))์‹œ๊ฐ„์ดˆ๊ณผ๊ฐ€ ๋‚œ๋‹ค.์บ์‹ฑ์„ ์•ˆํ•ด์„œ ์˜ค๋ž˜๊ฑธ๋ฆฌ๊ณ , ์‹œ๊ฐ„๋ณต์žก๋„๋„ ์—„์ฒญ ๋†’๊ธฐ์— ์‹œ๊ฐ„์ดˆ๊ณผ๊ฐ€koreatstm.tistory.com์ด์ฒ˜๋Ÿผ f(n) = f(n-1) + f(n-2)์˜ ๊ทœ์น™์ด๋‹ค.์ด์ œ..
https://www.acmicpc.net/problem/11051์ดˆ๊ธฐ์ฝ”๋“œn, k = map(int,input().split())def fun(n,k): if k==n or k==0: return 1 else: return fun(n-1,k-1)+fun(n-1,k)print(fun(n,k)%10007)์‹œ๊ฐ„์ดˆ๊ณผ๋‚œ๋‹ค์žฌ๊ท€(๋ฉ”๋ชจ์ด์ œ์ด์…˜)import sysn, k = map(int,input().split())sys.setrecursionlimit(10**7)cache = [[0]*1001 for _ in range(1001)]def fun(n,k): if cache[n][k]: # 0์ด ์•„๋‹Œ ์ˆ˜๋ผ๋ฉด return cache[n][k] if k==n ..
https://www.acmicpc.net/problem/2748n=int(input())def func(n): if n==0: return 0 if n==1: return 1 else: return func(n-1)+func(n-2)print(func(n))์‹œ๊ฐ„์ดˆ๊ณผ๊ฐ€ ๋‚œ๋‹ค.์บ์‹ฑ์„ ์•ˆํ•ด์„œ ์˜ค๋ž˜๊ฑธ๋ฆฌ๊ณ , ์‹œ๊ฐ„๋ณต์žก๋„๋„ ์—„์ฒญ ๋†’๊ธฐ์— ์‹œ๊ฐ„์ดˆ๊ณผ๊ฐ€ ๋‚˜๋Š” ๊ฒƒ์ด๋‹ค,์šฐ๋ฆฌ๋Š” ์ค‘๊ฐ„์ €์žฅ์ธ ์บ์‹ฑ์„ ์‚ฌ์šฉํ•ด์•ผํ•œ๋‹ค.ํƒ€๋ทธ๋ ˆ์ด์…˜n=int(input())cache = [0] * 100for i in range(100): if i==0: cache[i]= 0 if i==1: cache[i]= 1 else: cache[i]= cache[..
https://www.acmicpc.net/problem/11399 11399๋ฒˆ: ATM ์ฒซ์งธ ์ค„์— ์‚ฌ๋žŒ์˜ ์ˆ˜ N(1 ≤ N ≤ 1,000)์ด ์ฃผ์–ด์ง„๋‹ค. ๋‘˜์งธ ์ค„์—๋Š” ๊ฐ ์‚ฌ๋žŒ์ด ๋ˆ์„ ์ธ์ถœํ•˜๋Š”๋ฐ ๊ฑธ๋ฆฌ๋Š” ์‹œ๊ฐ„ Pi๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. (1 ≤ Pi ≤ 1,000) www.acmicpc.net [Code] n=int(input()) sums=0 arr=list(map(int, input().split())) for i in range(n): for j in range(i+1,n): if arr[i]>arr[j]: arr[i],arr[j]= arr[j],arr[i] for i in range(1,n+1): sums += sum(arr[0:i]) print(sums)
์‚ฝ์ž… ์ •๋ ฌ์€ ์ด๋ฏธ ์ •๋ ฌ๋œ ๋ฐ์ดํ„ฐ ๋ฒ”์œ„์— ์ •๋ ฌ๋˜์ง€ ์•Š์€ ๋ฐ์ดํ„ฐ๋ฅผ ์ ์ ˆํ•œ ์œ„์น˜์— ์‚ฝ์ž…์‹œ์ผœ ์ •๋ ฌํ•˜๋Š” ๋ฐฉ์‹์ด๋‹ค. ์‹œ๊ฐ„ ๋ณต์žก๋„๋Š” O(n^2) ํ•ต์‹ฌ ์„ ํƒ ๋ฐ์ดํ„ฐ๋ฅผ ํ˜„์žฌ ์ •๋ ฌ๋œ ๋ฐ์ดํ„ฐ ๋ฒ”์œ„ ๋‚ด์—์„œ ์ ์ ˆํ•œ ์œ„์น˜์— ์‚ฝ์ž…ํ•˜๋Š” ๊ฒƒ์ด ์‚ฝ์ž… ์ •๋ ฌ์˜ ํ•ต์‹ฌ์ด๋‹ค. ์‚ฝ์ž… ์ •๋ ฌ์˜ ์ˆ˜ํ–‰ ๋ฐฉ์‹ 1. ํ˜„์žฌ index์— ์žˆ๋Š” ๋ฐ์ดํ„ฐ ๊ฐ’์„ ์„ ํƒํ•œ๋‹ค. 2. ํ˜„์žฌ ์„ ํƒํ•œ ๋ฐ์ดํ„ฐ๊ฐ€ ์ •๋ ฌ๋œ ๋ฐ์ดํ„ฐ ๋ฒ”์œ„์— ์‚ฝ์ž…๋  ์œ„์น˜๋ฅผ ํƒ์ƒ‰ํ•œ๋‹ค. 3. ์‚ฝ์ž… ์œ„์น˜๋ถ€ํ„ฐ index์— ์žˆ๋Š” ์œ„์น˜๊นŒ์ง€ shift ์—ฐ์‚ฐ์„ ์ˆ˜ํ–‰ํ•œ๋‹ค. 4. ์‚ฝ์ž… ์œ„์น˜์— ํ˜„์žฌ ์„ ํƒํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ์‚ฝ์ž…ํ•˜๊ณ  index++ ์—ฐ์‚ฐ์„ ์ˆ˜ํ–‰ํ•œ๋‹ค. 5. ์ „์ฒด ๋ฐ์ดํ„ฐ์˜ ํฌ๊ธฐ๋งŒํผ index๊ฐ€ ์ปค์งˆ ๋•Œ๊นŒ์ง€, ์ฆ‰ ์„ ํƒํ•  ๋ฐ์ดํ„ฐ๊ฐ€ ์—†์„ ๋•Œ๊นŒ์ง€ ๋ฐ˜๋ณตํ•œ๋‹ค. ์ถ”๊ฐ€์ ์œผ๋กœ ์ด์ง„ํƒ์ƒ‰์„ ์‚ฌ์šฉํ•˜๋ฉด ์‹œ๊ฐ„ ๋ณต์žก๋„๋ฅผ ์ค„์ผ ์ˆ˜ ์žˆ๋‹ค.
์„ ํƒ ์ •๋ ฌ์€ ๋Œ€์ƒ ๋ฐ์ดํ„ฐ์—์„œ ์ตœ๋Œ€๋‚˜ ์ตœ์†Œ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ์ดํ„ฐ๊ฐ€ ๋‚˜์—ด๋œ ์ˆœ์œผ๋กœ ์ฐพ์•„๊ฐ€๋ฉฐ ์„ ํƒํ•˜๋Š” ๋ฐฉ๋ฒ•. ์‹œ๊ฐ„ ๋ณต์žก๋„ O(n^2)์œผ๋กœ ๋Š๋ฆฐ ํŽธ ํ•ต์‹ฌ ์ตœ์†Ÿ๊ฐ’ or ์ตœ๋Œ“๊ฐ’ ์ฐพ๊ณ , ๋‚จ์€ ์ •๋ ฌ ๋ถ€๋ถ„์˜ ๊ฐ€์žฅ ์•ž์— ์žˆ๋Š” ๋ฐ์ดํ„ฐ์™€ swap ํ•˜๋Š” ๊ฒƒ ์„ ํƒ ์ •๋ ฌ ๊ณผ์ • 1. ๋‚จ์€ ์ •๋ ฌ ๋ถ€๋ถ„์—์„œ ์ตœ์†Ÿ๊ฐ’ ๋˜๋Š” ์ตœ๋Œ“๊ฐ’์„ ์ฐพ๋Š”๋‹ค. 2. ๋‚จ์€ ์ •๋ ฌ ๋ถ€๋ถ„์—์„œ ๊ฐ€์žฅ ์•ž์— ์žˆ๋Š” ๋ฐ์ดํ„ฐ์™€ ์„ ํƒ๋œ ๋ฐ์ดํ„ฐ๋ฅผ swapํ•œ๋‹ค. 3. ๊ฐ€์žฅ ์•ž์— ์žˆ๋Š” ๋ฐ์ดํ„ฐ์˜ ์œ„์น˜๋ฅผ ๋ณ€๊ฒฝํ•ด(index++) ๋‚จ์€ ๋ถ€๋ถ„์˜ ๋ฒ”์œ„๋ฅผ ์ถ•์†Œํ•œ๋‹ค. 4. ์ „์ฒด ๋ฐ์ดํ„ฐ ํฌ๊ธฐ๋งŒํผ index๊ฐ€ ์ปค์งˆ ๋•Œ๊นŒ์ง€, ์ฆ‰ ๋‚จ์€ ์ •๋ ฌ ๋ถ€๋ถ„์ด ์—†์„ ๋•Œ๊นŒ์ง€ ๋ฐ˜๋ณตํ•œ๋‹ค. ์‹œ๊ฐ„๋ณต์žก๋„๊ฐ€ O(n^2)์ธ ์ด์œ ๋ฅผ ์ƒ๊ฐํ•ด๋ณด์ž. ๋ฐ์ดํ„ฐ์˜ ๊ฐœ์ˆ˜๊ฐ€ n๊ฐœ ์ผ๋•Œ, ์ฒซ ๋ฒˆ์งธ ๋ฃจํ”„์—์„œ ๋น„๊ตํšŸ์ˆ˜๋Š” 1~ n-1๋ฒˆ์œผ๋กœ n-1๋ฒˆ ๋‘ ๋ฒˆ์งธ ๋ฃจ..
๊ณ„๋ž€์†Œ๋…„
'๐Ÿฏ์•Œ๊ณ ๋ฆฌ์ฆ˜/BOJ' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๊ธ€ ๋ชฉ๋ก