์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œ 187

[BOJ/Step11] 2231 : ๋ถ„ํ•ดํ•ฉ (Python)

www.acmicpc.net/problem/2231 2231๋ฒˆ: ๋ถ„ํ•ดํ•ฉ ์–ด๋–ค ์ž์—ฐ์ˆ˜ N์ด ์žˆ์„ ๋•Œ, ๊ทธ ์ž์—ฐ์ˆ˜ N์˜ ๋ถ„ํ•ดํ•ฉ์€ N๊ณผ N์„ ์ด๋ฃจ๋Š” ๊ฐ ์ž๋ฆฌ์ˆ˜์˜ ํ•ฉ์„ ์˜๋ฏธํ•œ๋‹ค. ์–ด๋–ค ์ž์—ฐ์ˆ˜ M์˜ ๋ถ„ํ•ดํ•ฉ์ด N์ธ ๊ฒฝ์šฐ, M์„ N์˜ ์ƒ์„ฑ์ž๋ผ ํ•œ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, 245์˜ ๋ถ„ํ•ดํ•ฉ์€ 256(=245+2+4+5)์ด www.acmicpc.net ์ˆซ์ž x๊ฐ€ ์ „๋‹ฌ๋˜๋ฉด x์˜ ๋ถ„ํ•ดํ•ฉ์„ ๋ฐ˜ํ™˜ํ•ด์ฃผ๋Š” ํ•จ์ˆ˜ add๋ฅผ ์ž‘์„ฑ 1. 1๋ถ€ํ„ฐ n๊นŒ์ง€ ์ˆœ์„œ๋Œ€๋กœ ๋ถ„ํ•ดํ•ฉ์„ ๊ตฌํ•ด ๋ถ„ํ•ดํ•ฉ์ด n๊ณผ ๊ฐ™์œผ๋ฉด t = i๋ฅผ ์ถœ๋ ฅํ•˜๊ณ  ๋ฃจํ”„ ํƒˆ์ถœ ( n์˜ ๊ฐ€์žฅ ์ž‘์€ ์ƒ์„ฑ์ž๋ฅผ ๊ตฌํ•ด์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— 1๋ถ€ํ„ฐ ์ˆœ์„œ๋Œ€๋กœ ์‹คํ–‰ ) 2. t๋ฅผ ์ถœ๋ ฅ ( ์ƒ์„ฑ์ž๊ฐ€ ์กด์žฌํ•˜์ง€ ์•Š์œผ๋ฉด t๋Š” ๊ทธ๋Œ€๋กœ 0์ด๊ธฐ ๋•Œ๋ฌธ์— 0์ด ์ถœ๋ ฅ๋จ ) # 2231.py def add(x): a = list(map(..

[BOJ/Step11] 2798 : ๋ธ”๋ž™์žญ (Python)

www.acmicpc.net/problem/2798 2798๋ฒˆ: ๋ธ”๋ž™์žญ ์ฒซ์งธ ์ค„์— ์นด๋“œ์˜ ๊ฐœ์ˆ˜ N(3 ≤ N ≤ 100)๊ณผ M(10 ≤ M ≤ 300,000)์ด ์ฃผ์–ด์ง„๋‹ค. ๋‘˜์งธ ์ค„์—๋Š” ์นด๋“œ์— ์“ฐ์—ฌ ์žˆ๋Š” ์ˆ˜๊ฐ€ ์ฃผ์–ด์ง€๋ฉฐ, ์ด ๊ฐ’์€ 100,000์„ ๋„˜์ง€ ์•Š๋Š” ์–‘์˜ ์ •์ˆ˜์ด๋‹ค. ํ•ฉ์ด M์„ ๋„˜์ง€ ์•Š๋Š” ์นด๋“œ 3์žฅ www.acmicpc.net N๊ฐœ์˜ ์นด๋“œ ์ค‘ M์„ ๋„˜์ง€ ์•Š๋Š” ์„ธ ๊ฐœ์˜ ํ•ฉ์˜ ์ตœ๋Œ€๊ฐ’์„ ๊ตฌํ•˜๋Š” ๋ฌธ์ œ 1. i๋Š” 0๋ถ€ํ„ฐ n-2๊นŒ์ง€, j๋Š” i+1๋ถ€ํ„ฐ n-1๊นŒ์ง€, l์€ j+1๋ถ€ํ„ฐ n๊นŒ์ง€ ์ˆœ์„œ๋Œ€๋กœ ๊ณจ๋ผ ๋”ํ•œ๋‹ค ( i๋ฅผ ๊ณ ๋ฅด๋ฉด j๋Š” i ์ด์ „์˜ ์นด๋“œ๋ฅผ ๊ณ ๋ฅผ ํ•„์š”๊ฐ€ ์—†๊ณ  i๊ฐ€ n-2์ผ๋•Œ n-1๊ณผ n์€ ๊ฐ๊ฐ j์™€ l์ด ๋˜๊ธฐ ๋•Œ๋ฌธ์— n-2๊นŒ์ง€๋งŒ ๊ณ ๋ฅด๋ฉด ๋œ๋‹ค ) 2. i + j + l ์ด total๋ณด๋‹ค ํฌ๊ณ  m๊ณผ ๊ฐ™๊ฑฐ๋‚˜ ์ž‘์„๋•Œ..

[BOJ/Step10] 11729 : ํ•˜๋…ธ์ด ํƒ‘ ์ด๋™ ์ˆœ์„œ (Python)

www.acmicpc.net/problem/11729 11729๋ฒˆ: ํ•˜๋…ธ์ด ํƒ‘ ์ด๋™ ์ˆœ์„œ ์„ธ ๊ฐœ์˜ ์žฅ๋Œ€๊ฐ€ ์žˆ๊ณ  ์ฒซ ๋ฒˆ์งธ ์žฅ๋Œ€์—๋Š” ๋ฐ˜๊ฒฝ์ด ์„œ๋กœ ๋‹ค๋ฅธ n๊ฐœ์˜ ์›ํŒ์ด ์Œ“์—ฌ ์žˆ๋‹ค. ๊ฐ ์›ํŒ์€ ๋ฐ˜๊ฒฝ์ด ํฐ ์ˆœ์„œ๋Œ€๋กœ ์Œ“์—ฌ์žˆ๋‹ค. ์ด์ œ ์ˆ˜๋„์Šน๋“ค์ด ๋‹ค์Œ ๊ทœ์น™์— ๋”ฐ๋ผ ์ฒซ ๋ฒˆ์งธ ์žฅ๋Œ€์—์„œ ์„ธ ๋ฒˆ์งธ ์žฅ๋Œ€๋กœ www.acmicpc.net n๊ฐœ์˜ ์›ํŒ์„ 1๋ฒˆ ์žฅ๋Œ€์—์„œ 3๋ฒˆ ์žฅ๋Œ€๋กœ ์˜ฎ๊ธฐ๋ ค๋ฉด 1. n-1๊ฐœ์˜ ์›ํŒ์„ 1๋ฒˆ ์žฅ๋Œ€(์ถœ๋ฐœ)์—์„œ 2๋ฒˆ ์žฅ๋Œ€(์ค‘๊ฐ„)๋กœ ์˜ฎ๊ธด๋‹ค : ์žฌ๊ท€ 2. ๊ฐ€์žฅ ํฐ ์›ํŒ์„ 1๋ฒˆ ์žฅ๋Œ€(์ถœ๋ฐœ)์—์„œ 3๋ฒˆ ์žฅ๋Œ€(๋„์ฐฉ)๋กœ ์˜ฎ๊ธด๋‹ค 3. n-1๊ฐœ์˜ ์›ํŒ์„ 2๋ฒˆ ์žฅ๋Œ€(์ค‘๊ฐ„)์—์„œ 3๋ฒˆ ์žฅ๋Œ€(๋„์ฐฉ)๋กœ ์˜ฎ๊ธด๋‹ค : ์žฌ๊ท€ 3๊ฐœ์˜ ๊ณผ์ •์„ ๊ฑฐ์น˜๊ณ  ์ด 2^n + 1๋ฒˆ ์ด๋™์ด ํ•„์š”ํ•˜๋‹ค. ์œ„ ๊ณผ์ •์„ ๊ตฌํ˜„ํ•˜๋ฉด hanoi(n, start, middle,..

[BOJ/Step10] 2447 : ๋ณ„ ์ฐ๊ธฐ - 10 (Python)

www.acmicpc.net/problem/2447 2447๋ฒˆ: ๋ณ„ ์ฐ๊ธฐ - 10 ์žฌ๊ท€์ ์ธ ํŒจํ„ด์œผ๋กœ ๋ณ„์„ ์ฐ์–ด ๋ณด์ž. N์ด 3์˜ ๊ฑฐ๋“ญ์ œ๊ณฑ(3, 9, 27, ...)์ด๋ผ๊ณ  ํ•  ๋•Œ, ํฌ๊ธฐ N์˜ ํŒจํ„ด์€ N×N ์ •์‚ฌ๊ฐํ˜• ๋ชจ์–‘์ด๋‹ค. ํฌ๊ธฐ 3์˜ ํŒจํ„ด์€ ๊ฐ€์šด๋ฐ์— ๊ณต๋ฐฑ์ด ์žˆ๊ณ , ๊ฐ€์šด๋ฐ๋ฅผ ์ œ์™ธํ•œ ๋ชจ๋“  ์นธ์— ๋ณ„์ด www.acmicpc.net n์€ 3์˜ ๋ฐฐ์ˆ˜๋กœ ์ž…๋ ฅ๋˜๊ณ , n*n ํฌ๊ธฐ์˜ ์‚ฌ๊ฐํ˜•์œผ๋กœ *์ด ์ถœ๋ ฅ๋œ๋‹ค. ์ „์ฒด ์‚ฌ๊ฐํ˜•์„ 9๊ฐœ๋กœ ๋‚˜๋ˆด์„ ๋•Œ, ์ • ๊ฐ€์šด๋ฐ๋Š” ํ•ญ์ƒ ๋นˆ์นธ, ๋‚˜๋จธ์ง€ 8๊ฐœ ๋ถ€๋ถ„์€ ๋˜ 9๊ฐœ๋กœ ๋‚˜๋ˆ ์ ธ ๊ฐ™์€ ๊ทœ์น™์„ ๋ฐ˜๋ณตํ•œ๋‹ค => ์žฌ๊ท€ํ•จ์ˆ˜ 1. ์ž…๋ ฅ๋ฐ›์€ n*n ํฌ๊ธฐ์˜ ์ด์ค‘ ๋ฆฌ์ŠคํŠธ์— ๋ฏธ๋ฆฌ '*'์„ ์ฑ„์›Œ๋‘๊ณ  ์ • ๊ฐ€์šด๋ฐ ๋ถ€๋ถ„๋งŒ ๊ณต๋ฐฑ์œผ๋กœ ๋ฐ”๊พธ๋Š” ๋ฐฉ๋ฒ• (1) - divstar(arrays, x, y, n) : arrays์™€ ํฌ๊ธฐ ..

[BOJ/Step10] 10870 : ํ”ผ๋ณด๋‚˜์น˜ ์ˆ˜ 5 (Python)

www.acmicpc.net/problem/10870 10870๋ฒˆ: ํ”ผ๋ณด๋‚˜์น˜ ์ˆ˜ 5 ํ”ผ๋ณด๋‚˜์น˜ ์ˆ˜๋Š” 0๊ณผ 1๋กœ ์‹œ์ž‘ํ•œ๋‹ค. 0๋ฒˆ์งธ ํ”ผ๋ณด๋‚˜์น˜ ์ˆ˜๋Š” 0์ด๊ณ , 1๋ฒˆ์งธ ํ”ผ๋ณด๋‚˜์น˜ ์ˆ˜๋Š” 1์ด๋‹ค. ๊ทธ ๋‹ค์Œ 2๋ฒˆ์งธ ๋ถ€ํ„ฐ๋Š” ๋ฐ”๋กœ ์•ž ๋‘ ํ”ผ๋ณด๋‚˜์น˜ ์ˆ˜์˜ ํ•ฉ์ด ๋œ๋‹ค. ์ด๋ฅผ ์‹์œผ๋กœ ์จ๋ณด๋ฉด Fn = Fn-1 + Fn-2 (n ≥ 2)๊ฐ€ www.acmicpc.net x๋ฅผ ์ „๋‹ฌํ•˜๋ฉด fibo(x-1) + fibo(x-2) ๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋Š” ํ•จ์ˆ˜ fibo() ๋ฅผ ์ •์˜ fibo()๋Š” ์žฌ๊ท€ํ•จ์ˆ˜๋กœ x๊ฐ€ 0 ๋˜๋Š” 1์ผ๋•Œ๊นŒ์ง€ fibo()๋ฅผ ๋ฐ˜๋ณตํ•ด์„œ ํ˜ธ์ถœํ•œ๋‹ค # 10870.py def fibo(x): if x == 0: return 0 elif x == 1: return 1 else: return fibo(x-1) + fibo(x-2) x = int(in..

[BOJ/Step10] 10872 : ํŒฉํ† ๋ฆฌ์–ผ (Python)

www.acmicpc.net/problem/10872 10872๋ฒˆ: ํŒฉํ† ๋ฆฌ์–ผ 0๋ณด๋‹ค ํฌ๊ฑฐ๋‚˜ ๊ฐ™์€ ์ •์ˆ˜ N์ด ์ฃผ์–ด์ง„๋‹ค. ์ด๋•Œ, N!์„ ์ถœ๋ ฅํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์‹œ์˜ค. www.acmicpc.net N! = N * (N - 1) * … * 2 * 1 x๋ฅผ ์ „๋‹ฌํ•˜๋ฉด x * fax(x-1)์„ ๋ฐ˜ํ™˜ํ•˜๋Š” ํ•จ์ˆ˜ fac() ์„ ์ •์˜ fac()์€ ์žฌ๊ท€ํ•จ์ˆ˜๋กœ x๊ฐ€ 0์ผ๋•Œ๊นŒ์ง€ fac()๋ฅผ ๋ฐ˜๋ณตํ•ด์„œ ํ˜ธ์ถœํ•œ๋‹ค # 10872.py def fac(x): if x == 0: return 1 else: return x * fac(x-1) x = int(input()) print(fac(x))

[BOJ/Step9] 1002 : ํ„ฐ๋ › (Python)

www.acmicpc.net/problem/1002 1002๋ฒˆ: ํ„ฐ๋ › ๊ฐ ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค๋งˆ๋‹ค ๋ฅ˜์žฌ๋ช…์ด ์žˆ์„ ์ˆ˜ ์žˆ๋Š” ์œ„์น˜์˜ ์ˆ˜๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค. ๋งŒ์•ฝ ๋ฅ˜์žฌ๋ช…์ด ์žˆ์„ ์ˆ˜ ์žˆ๋Š” ์œ„์น˜์˜ ๊ฐœ์ˆ˜๊ฐ€ ๋ฌดํ•œ๋Œ€์ผ ๊ฒฝ์šฐ์—๋Š” -1์„ ์ถœ๋ ฅํ•œ๋‹ค. www.acmicpc.net ์กฐ๊ทœํ˜„๊ณผ ๋ฐฑ์Šนํ™˜์˜ ์ขŒํ‘œ์™€ ๋ฅ˜์žฌ๋ช…๊ณผ์˜ ๊ฑฐ๋ฆฌ๊ฐ€ ๊ฐ๊ฐ ์ฃผ์–ด์กŒ์„ ๋•Œ ๋ฅ˜์žฌ๋ช…์ด ์žˆ์„ ์ˆ˜ ์žˆ๋Š” ์ขŒํ‘œ์˜ ์ˆ˜ == ๋‘ ์ ์˜ ์ขŒํ‘œ์™€ ๋ฐ˜์ง€๋ฆ„์ด ์ฃผ์–ด์กŒ์„ ๋•Œ ๋‘ ์›์˜ ๊ต์ฐจ์ ์˜ ๊ฐœ์ˆ˜ A(x1, y1) ๋ฐ˜์ง€๋ฆ„ r1, B(x2, y2) ๋ฐ˜์ง€๋ฆ„ r2 ์ผ๋•Œ ๋‘ ์ ์˜ ๊ฑฐ๋ฆฌ distance = ๋ฃจํŠธ(( x1 - x2 )^2 + ( y1 - y2 )^2) ๋ผ ํ•œ๋‹ค. 1. ๋‘ ์›์ด ์ผ์น˜ํ•  ๋•Œ : distance == 0 and r1 == r2 2. ๋‘ ์›์ด ๊ต์ฐจํ•˜์ง€ ์•Š์„ ๋•Œ : r1 + r2 < d..

[BOJ/Step9] 3053 : ํƒ์‹œ ๊ธฐํ•˜ํ•™ (Python)

www.acmicpc.net/problem/3053 3053๋ฒˆ: ํƒ์‹œ ๊ธฐํ•˜ํ•™ ์ฒซ์งธ ์ค„์—๋Š” ์œ ํด๋ฆฌ๋“œ ๊ธฐํ•˜ํ•™์—์„œ ๋ฐ˜์ง€๋ฆ„์ด R์ธ ์›์˜ ๋„“์ด๋ฅผ, ๋‘˜์งธ ์ค„์—๋Š” ํƒ์‹œ ๊ธฐํ•˜ํ•™์—์„œ ๋ฐ˜์ง€๋ฆ„์ด R์ธ ์›์˜ ๋„“์ด๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค. ์ •๋‹ต๊ณผ์˜ ์˜ค์ฐจ๋Š” 0.0001๊นŒ์ง€ ํ—ˆ์šฉํ•œ๋‹ค. www.acmicpc.net ์›์˜ ์ •์˜๋Š” ์–ด๋–ค ์ ์—์„œ์˜ ๊ฑฐ๋ฆฌ๊ฐ€ ์ผ์ •ํ•œ ์ ๋“ค์˜ ์ง‘ํ•ฉ์ด๋‹ค. ํƒ์‹œ ๊ธฐํ•˜ํ•™์—์„œ์˜ ๊ฑฐ๋ฆฌ์˜ ์ •์˜๊ฐ€ D(T1,T2) = |x1-x2| + |y1-y2| ๋กœ ์ •์˜๋˜์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ํƒ์‹œ ๊ธฐํ•˜ํ•™์—์„œ์˜ ์›์€, ํ•œ ์ ์ด (0, 0) ์›์ ์ด๋ผ๊ณ  ํ•  ๋•Œ x + y๊ฐ€ ์ผ์ •ํ•œ ์ ๋“ค์˜ ์ง‘ํ•ฉ์ด๋‹ค. ๋”ฐ๋ผ์„œ ์›์˜ ๋„“์ด๋ฅผ ๊ตฌํ•˜๋ฉด ์œ ํด๋ฆฌ๋“œ ๊ธฐํ•˜ํ•™ : PI * R * R ํƒ์‹œ ๊ธฐํ•˜ํ•™ : 2 * R * R ( = 2R * 2R / 2 ) ์ด ๋œ๋‹ค. # 3053.py impor..

[BOJ/Step9] 4153 : ์ง๊ฐ์‚ผ๊ฐํ˜• (Python)

www.acmicpc.net/problem/4153 4153๋ฒˆ: ์ง๊ฐ์‚ผ๊ฐํ˜• ์ž…๋ ฅ์€ ์—ฌ๋Ÿฌ๊ฐœ์˜ ํ…Œ์ŠคํŠธ์ผ€์ด์Šค๋กœ ์ฃผ์–ด์ง€๋ฉฐ ๋งˆ์ง€๋ง‰์ค„์—๋Š” 0 0 0์ด ์ž…๋ ฅ๋œ๋‹ค. ๊ฐ ํ…Œ์ŠคํŠธ์ผ€์ด์Šค๋Š” ๋ชจ๋‘ 30,000๋ณด๋‹ค ์ž‘์€ ์–‘์˜ ์ •์ˆ˜๋กœ ์ฃผ์–ด์ง€๋ฉฐ, ๊ฐ ์ž…๋ ฅ์€ ๋ณ€์˜ ๊ธธ์ด๋ฅผ ์˜๋ฏธํ•œ๋‹ค. www.acmicpc.net ์ง๊ฐ์‚ผ๊ฐํ˜•์€ ๊ฐ€์žฅ ๊ธด ๋ณ€์˜ ์ œ๊ณฑ์ด ๋‚˜๋จธ์ง€ ๋‘ ๋ณ€์˜ ์ œ๊ณฑ์˜ ํ•ฉ๊ณผ ๊ฐ™๋‹ค 1. ์ •์ˆ˜ ์„ธ๊ฐœ๋ฅผ ๋ฆฌ์ŠคํŠธ a์— ์ž…๋ ฅ๋ฐ›๊ณ  ์…‹ ๋ชจ๋‘ 0์ผ๋•Œ ๋ฌดํ•œ๋ฃจํ”„๋ฅผ ํƒˆ์ถœ 2. a๋ฅผ ์ •๋ ฌ 3. a[2]์˜ ์ œ๊ณฑ์ด a[0], a[1] ๋‘ ๋ณ€์˜ ์ œ๊ณฑ์˜ ํ•ฉ๊ณผ ๊ฐ™์œผ๋ฉด right์„, ๋‹ค๋ฅด๋ฉด wrong์„ ์ถœ๋ ฅ์‹œํ‚จ๋‹ค. # 4153.py while True: a = list(map(int, input().split())) if a[0] == 0 and a[1] == 0 and..

[BOJ/Step9] 3009 : ๋„ค ๋ฒˆ์งธ ์  (Python)

www.acmicpc.net/problem/3009 3009๋ฒˆ: ๋„ค ๋ฒˆ์งธ ์  ์„ธ ์ ์ด ์ฃผ์–ด์กŒ์„ ๋•Œ, ์ถ•์— ํ‰ํ–‰ํ•œ ์ง์‚ฌ๊ฐํ˜•์„ ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด์„œ ํ•„์š”ํ•œ ๋„ค ๋ฒˆ์งธ ์ ์„ ์ฐพ๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์‹œ์˜ค. www.acmicpc.net 1. ์„ธ ์ ์ด ์ฃผ์–ด์กŒ๋Š”๋ฐ ํ•œ ์ ์„ ์ฐ์Œ์œผ๋กœ์„œ ํ•ญ์ƒ ์ง์‚ฌ๊ฐํ˜•์ด ๋งŒ๋“ค์–ด์ง„๋‹ค๋Š” ๊ฑด, ์ฃผ์–ด์ง€๋Š” ์„ธ ์ ์ด ๋ฌด์กฐ๊ฑด ์ง๊ฐ์œผ๋กœ ์ฃผ์–ด์ง„๋‹ค๋Š” ๊ฒƒ์ด๋‹ค. 2. ์ฃผ์–ด์ง„ ์„ธ ์ ์€ x๋ผ๋ฆฌ, y๋ผ๋ฆฌ ๋ฌถ์—ˆ์„ ๋•Œ ๋‘ ๊ฐœ๋Š” ๊ฐ™๊ณ  ํ•œ ๊ฐœ๋Š” ๋‹ค๋ฅผ ๊ฒƒ์ด๋‹ค. ๋‹ค๋ฅธ ํ•œ ๊ฐœ๋ฅผ ๋ชจ์•„ ๋„ค๋ฒˆ์งธ ์ ์„ ๋งŒ๋“ค์–ด ์ฃผ๋ฉด ๋œ๋‹ค. # 3009.py x1, y1 = map(int, input().split()) x2, y2 = map(int, input().split()) x3, y3 = map(int, input().split()) x4 = x1 if ..