[python]๋ฐฑ์ค€ 1992๋ฒˆ : ์ฟผ๋“œํŠธ๋ฆฌ
Algorithm ๋ฌธ์ œ/BOJ 2020. 2. 29. 12:57

https://www.acmicpc.net/problem/1992 ์‹œ๊ฐ„ ์ œํ•œ ๋ฉ”๋ชจ๋ฆฌ ์ œํ•œ ์ œ์ถœ ์ •๋‹ต ๋งž์€ ์‚ฌ๋žŒ ์ •๋‹ต ๋น„์œจ 2 ์ดˆ 128 MB 10660 6114 4794 57.420% ๋ฌธ์ œ ํ‘๋ฐฑ ์˜์ƒ์„ ์••์ถ•ํ•˜์—ฌ ํ‘œํ˜„ํ•˜๋Š” ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ๋กœ ์ฟผ๋“œ ํŠธ๋ฆฌ(Quad Tree)๋ผ๋Š” ๋ฐฉ๋ฒ•์ด ์žˆ๋‹ค. ํฐ ์ ์„ ๋‚˜ํƒ€๋‚ด๋Š” 0๊ณผ ๊ฒ€์€ ์ ์„ ๋‚˜ํƒ€๋‚ด๋Š” 1๋กœ๋งŒ ์ด๋ฃจ์–ด์ง„ ์˜์ƒ(2์ฐจ์› ๋ฐฐ์—ด)์—์„œ ๊ฐ™์€ ์ˆซ์ž์˜ ์ ๋“ค์ด ํ•œ ๊ณณ์— ๋งŽ์ด ๋ชฐ๋ ค์žˆ์œผ๋ฉด, ์ฟผ๋“œ ํŠธ๋ฆฌ์—์„œ๋Š” ์ด๋ฅผ ์••์ถ•ํ•˜์—ฌ ๊ฐ„๋‹จํžˆ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ๋‹ค. ์ฃผ์–ด์ง„ ์˜์ƒ์ด ๋ชจ๋‘ 0์œผ๋กœ๋งŒ ๋˜์–ด ์žˆ์œผ๋ฉด ์••์ถ• ๊ฒฐ๊ณผ๋Š” "0"์ด ๋˜๊ณ , ๋ชจ๋‘ 1๋กœ๋งŒ ๋˜์–ด ์žˆ์œผ๋ฉด ์••์ถ• ๊ฒฐ๊ณผ๋Š” "1"์ด ๋œ๋‹ค. ๋งŒ์•ฝ 0๊ณผ 1์ด ์„ž์—ฌ ์žˆ์œผ๋ฉด ์ „์ฒด๋ฅผ ํ•œ ๋ฒˆ์— ๋‚˜ํƒ€๋‚ด์ง€๋ฅผ ๋ชปํ•˜๊ณ , ์™ผ์ชฝ ์œ„, ์˜ค๋ฅธ์ชฝ ์œ„, ์™ผ์ชฝ ์•„๋ž˜, ์˜ค๋ฅธ์ชฝ ์•„๋ž˜, ์ด๋ ‡๊ฒŒ ..

[python]๋ฐฑ์ค€ 1074๋ฒˆ : Z
Algorithm ๋ฌธ์ œ/BOJ 2020. 2. 21. 22:24

๋ฌธ์ œ ํ•œ์ˆ˜๋Š” 2์ฐจ์› ๋ฐฐ์—ด (ํ•ญ์ƒ 2^N * 2^N ํฌ๊ธฐ์ด๋‹ค)์„ Z๋ชจ์–‘์œผ๋กœ ํƒ์ƒ‰ํ•˜๋ ค๊ณ  ํ•œ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, 2*2๋ฐฐ์—ด์„ ์™ผ์ชฝ ์œ„์นธ, ์˜ค๋ฅธ์ชฝ ์œ„์นธ, ์™ผ์ชฝ ์•„๋ž˜์นธ, ์˜ค๋ฅธ์ชฝ ์•„๋ž˜์นธ ์ˆœ์„œ๋Œ€๋กœ ๋ฐฉ๋ฌธํ•˜๋ฉด Z๋ชจ์–‘์ด๋‹ค. ๋งŒ์•ฝ, 2์ฐจ์› ๋ฐฐ์—ด์˜ ํฌ๊ธฐ๊ฐ€ 2^N * 2^N๋ผ์„œ ์™ผ์ชฝ ์œ„์— ์žˆ๋Š” ์นธ์ด ํ•˜๋‚˜๊ฐ€ ์•„๋‹ˆ๋ผ๋ฉด, ๋ฐฐ์—ด์„ 4๋“ฑ๋ถ„ ํ•œ ํ›„์— (ํฌ๊ธฐ๊ฐ€ ๊ฐ™์€ 2^(N-1)๋กœ) ์žฌ๊ท€์ ์œผ๋กœ ์ˆœ์„œ๋Œ€๋กœ ๋ฐฉ๋ฌธํ•œ๋‹ค. ๋‹ค์Œ ์˜ˆ๋Š” 2^2 * 2^2 ํฌ๊ธฐ์˜ ๋ฐฐ์—ด์„ ๋ฐฉ๋ฌธํ•œ ์ˆœ์„œ์ด๋‹ค. N์ด ์ฃผ์–ด์กŒ์„ ๋•Œ, (r, c)๋ฅผ ๋ช‡ ๋ฒˆ์งธ๋กœ ๋ฐฉ๋ฌธํ•˜๋Š”์ง€ ์ถœ๋ ฅํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์‹œ์˜ค. ๋‹ค์Œ ๊ทธ๋ฆผ์€ N=3์ผ ๋•Œ์˜ ์˜ˆ์ด๋‹ค. ์ž…๋ ฅ ์ฒซ์งธ ์ค„์— N r c๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. N์€ 15๋ณด๋‹ค ์ž‘๊ฑฐ๋‚˜ ๊ฐ™์€ ์ž์—ฐ์ˆ˜์ด๊ณ , r๊ณผ c๋Š” 0๋ณด๋‹ค ํฌ๊ฑฐ๋‚˜ ๊ฐ™๊ณ , 2^N-1๋ณด๋‹ค ์ž‘๊ฑฐ๋‚˜ ๊ฐ™์€ ์ •์ˆ˜์ด๋‹ค ์ถœ๋ ฅ..

[python]๋ฐฑ์ค€ 1019๋ฒˆ : ์ฑ… ํŽ˜์ด์ง€
Algorithm ๋ฌธ์ œ/BOJ 2020. 2. 21. 17:01

๋ฌธ์ œ ์ง€๋ฏผ์ด๋Š” N์ชฝ์ธ ์ฑ…์ด ํ•œ๊ถŒ ์žˆ๋‹ค. ์ฒซ ํŽ˜์ด์ง€๋Š” 1์ชฝ์ด๊ณ , ๋งˆ์ง€๋ง‰ ํŽ˜์ด์ง€๋Š” N์ชฝ์ด๋‹ค. ๊ฐ ์ˆซ์ž๊ฐ€ ๋ชจ๋‘ ๋ช‡ ๋ฒˆ์ด ๋‚˜์˜ค๋Š”์ง€ ์ถœ๋ ฅํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์‹œ์˜ค. ์ž…๋ ฅ ์ฒซ์งธ ์ค„์— N์ด ์ฃผ์–ด์ง„๋‹ค. N์€ 1,000,000,000๋ณด๋‹ค ์ž‘๊ฑฐ๋‚˜ ๊ฐ™์€ ์ž์—ฐ์ˆ˜์ด๋‹ค. ์ถœ๋ ฅ ์ฒซ์งธ ์ค„์— 0์ด ์ด ๋ช‡ ๋ฒˆ ๋‚˜์˜ค๋Š”์ง€, 1์ด ์ด ๋ช‡ ๋ฒˆ ๋‚˜์˜ค๋Š”์ง€, ..., 9๊ฐ€ ์ด ๋ช‡ ๋ฒˆ ๋‚˜์˜ค๋Š”์ง€๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค. ๋‚˜์˜ ๋‹ต ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ฒซ๋ฒˆ์งธ ์ฝ”๋“œ ์˜ˆ์‹œ๋ฅผ ๋งŽ์ด ์–ป๊ธฐ ์œ„ํ•ด ์ „์ฒด ๊ฒฝ์šฐ์˜ ์ˆ˜ ๊ตฌํ•˜๋Š” ๊ฐ€์žฅ ๊ฐ„๋‹จํ•œ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋จผ์ € ๊ตฌํ˜„ n_list = list() for z in range(0,1): n_list.append(int(input())) for n in n_list: num_result = [0,0,0,0,0,0,0,0,0,0] for i in range(1,..

[python]๋ฐฑ์ค€ 4811๋ฒˆ : ์•Œ์•ฝ
Algorithm ๋ฌธ์ œ/BOJ 2020. 2. 21. 00:23

https://www.acmicpc.net/problem/4811 ๋ฌธ์ œ 70์„ธ ๋ฐ•์ข…์ˆ˜ ํ• ์•„๋ฒ„์ง€๋Š” ๋งค์ผ ๋งค์ผ ์•ฝ ๋ฐ˜์•Œ์„ ๋จน๋Š”๋‹ค. ์†๋…€ ์„ ์˜์ด๋Š” ์ข…์ˆ˜ ํ• ์•„๋ฒ„์ง€์—๊ฒŒ ์•ฝ์ด N๊ฐœ ๋‹ด๊ธด ๋ณ‘์„ ์„ ๋ฌผ๋กœ ์ฃผ์—ˆ๋‹ค. ์ฒซ์งธ ๋‚ ์— ์ข…์ˆ˜๋Š” ๋ณ‘์—์„œ ์•ฝ ํ•˜๋‚˜๋ฅผ ๊บผ๋‚ธ๋‹ค. ๊ทธ ๋‹ค์Œ, ๊ทธ ์•ฝ์„ ๋ฐ˜์œผ๋กœ ์ชผ๊ฐœ์„œ ํ•œ ์กฐ๊ฐ์€ ๋จน๊ณ , ๋‹ค๋ฅธ ์กฐ๊ฐ์€ ๋‹ค์‹œ ๋ณ‘์— ๋„ฃ๋Š”๋‹ค. ๋‹ค์Œ ๋‚ ๋ถ€ํ„ฐ ์ข…์ˆ˜๋Š” ๋ณ‘์—์„œ ์•ฝ์„ ํ•˜๋‚˜ ๊บผ๋‚ธ๋‹ค. (์•ฝ์€ ํ•œ ์กฐ๊ฐ ์ „์ฒด ์ผ ์ˆ˜๋„ ์žˆ๊ณ , ์ชผ๊ฐ  ๋ฐ˜ ์กฐ๊ฐ ์ผ ์ˆ˜๋„ ์žˆ๋‹ค) ๋ฐ˜ ์กฐ๊ฐ์ด๋ผ๋ฉด ๊ทธ ์•ฝ์„ ๋จน๊ณ , ์•„๋‹ˆ๋ผ๋ฉด ๋ฐ˜์„ ์ชผ๊ฐœ์„œ ํ•œ ์กฐ๊ฐ์„ ๋จน๊ณ , ๋‹ค๋ฅธ ์กฐ๊ฐ์€ ๋‹ค์‹œ ๋ณ‘์— ๋„ฃ๋Š”๋‹ค. ์ข…์ˆ˜๋Š” ์†๋…€์—๊ฒŒ ํ•œ ์กฐ๊ฐ์„ ๊บผ๋‚ธ ๋‚ ์—๋Š” W๋ฅผ, ๋ฐ˜ ์กฐ๊ฐ์„ ๊บผ๋‚ธ ๋‚ ์—๋Š” H ๋ณด๋‚ธ๋‹ค. ์†๋…€๋Š” ํ• ์•„๋ฒ„์ง€์—๊ฒŒ ๋ฐ›์€ ๋ฌธ์ž๋ฅผ ์ข…์ด์— ๊ธฐ๋กํ•ด ๋†“๋Š”๋‹ค. ์ด 2N์ผ์ด ์ง€๋‚˜๋ฉด ๊ธธ์ด๊ฐ€ 2N์ธ..

[python] ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œ ํ•ด๊ฒฐ ์ „๋žต 1๊ถŒ :: ์‹œ๊ณ„ ๋งž์ถ”๊ธฐ (p168) ๋ฌธ์ œ
Algorithm ๋ฌธ์ œ/์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œํ•ด๊ฒฐ์ „๋žต 2020. 2. 15. 22:18

6.8 ๋ฌธ์ œ: ์‹œ๊ณ„ ๋งž์ถ”๊ธฐ (๋ฌธ์ œ ID: CLOCKSYNC, ๋‚œ์ด๋„: ์ค‘) ๋ฌธ์ œ 4x4 ๊ฒฉ์ž ํ˜•ํƒœ๋กœ ๋ฐฐ์น˜๋œ ์—ด์—ฌ์„ฏ ๊ฐœ์˜ ์‹œ๊ณ„๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ์‹œ๊ณ„๋“ค์€ ๋ชจ๋‘ 12์‹œ, 3์‹œ, 6์‹œ, ํ˜น์€ 9์‹œ๋ฅผ ๊ฐ€๋ฆฌํ‚ค๊ณ  ์žˆ๋Š”๋ฐ, ์ด ์‹œ๊ณ„๋“ค์ด ๋ชจ๋‘ 12์‹œ๋ฅผ ๊ฐ€๋ฆฌํ‚ค๋„๋ก ๋ฐ”๊พธ๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค. ์‹œ๊ณ„์˜ ์‹œ๊ฐ„์„ ์กฐ์ž‘ํ•˜๋Š” ์œ ์ผํ•œ ๋ฐฉ๋ฒ•์€ ์—ด ๊ฐœ์˜ ์Šค์œ„์น˜๋“ค์„ ์กฐ์ž‘ํ•˜๋Š” ๊ฒƒ์œผ๋กœ, ๊ฐ ์Šค์œ„์น˜๋“ค์€ ๋ชจ๋‘ ์ ๊ฒŒ๋Š” ์„ธ ๊ฐœ์—์„œ ๋งŽ๊ฒŒ๋Š” ๋‹ค์„ฏ ๊ฐœ์˜ ์‹œ๊ณ„์— ์—ฐ๊ฒฐ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ํ•œ ์Šค์œ„์น˜๋ฅผ ๋ˆ„๋ฅผ ๋•Œ๋งˆ๋‹ค, ํ•ด๋‹น ์Šค์œ„์น˜์™€ ์—ฐ๊ฒฐ๋œ ์‹œ๊ณ„๋“ค์˜ ์‹œ๊ฐ„์€ 3์‹œ๊ฐ„์”ฉ ์•ž์œผ๋กœ ์›€์ง์ž…๋‹ˆ๋‹ค. (12์‹œ์ผ๋•Œ๋Š” 3์‹œ๋กœ, 3์‹œ=>6์‹œ, 6์‹œ =>9์‹œ, 9์‹œ=>12์‹œ) ์Šค์œ„์น˜๋“ค๊ณผ ๊ทธ๋“ค์ด ์—ฐ๊ฒฐ๋œ ์‹œ๊ณ„๋“ค์˜ ๋ชฉ๋ก์ด ์ฃผ์–ด์ง€๊ณ  ํ˜„์žฌ ๊ฐ€๋ฆฌํ‚ค๋Š” ์‹œ๊ฐ„๋“ค์ด ์ฃผ์–ด์กŒ์„ ๋•Œ ๋ชจ๋“  ์‹œ๊ณ„๋ฅผ 12์‹œ๋กœ ๋Œ๋ฆฌ๊ธฐ ์œ„ํ•ด ์ตœ์†Œํ•œ ..

[python] ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œ ํ•ด๊ฒฐ ์ „๋žต 1๊ถŒ :: ๊ฒŒ์ž„ํŒ ๋ฎ๊ธฐ (p159) ๋ฌธ์ œ
Algorithm ๋ฌธ์ œ/์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œํ•ด๊ฒฐ์ „๋žต 2020. 2. 14. 22:53

6.5 ๋ฌธ์ œ : ๊ฒŒ์ž„ํŒ ๋ฎ๊ธฐ (๋ฌธ์ œ ID: BOARDCOVER, ๋‚œ์ด๋„: ํ•˜) ๋ฌธ์ œ H X W ํฌ๊ธฐ์˜ ๊ฒŒ์ž„ํŒ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฒŒ์ž„ํŒ์€ ๊ฒ€์€ ์นธ๊ณผ ํฐ ์นธ์œผ๋กœ ๊ตฌ์„ฑ๋œ ๊ฒฉ์ž ๋ชจ์–‘์„ ํ•˜๊ณ  ์žˆ๋Š”๋ฐ ์ด ์ค‘ ๋ชจ๋“  ํฐ ์นธ์„ ์„ธ ์นธ์งœ๋ฆฌ L์ž ๋ชจ์–‘์˜ ๋ธ”๋ก์œผ๋กœ ๋ฎ๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค. ์ด๋•Œ ๋ธ”๋ก๋“ค์€ ์ž์œ ๋กญ๊ฒŒ ํšŒ์ „ํ•ด์„œ ๋†“์„ ์ˆ˜ ์žˆ์ง€๋งŒ, ์„œ๋กœ ๊ฒน์น˜๊ฑฐ๋‚˜, ๊ฒ€์€ ์นธ์„ ๋ฎ๊ฑฐ๋‚˜, ๊ฒŒ์ž„ํŒ ๋ฐ–์œผ๋กœ ๋‚˜๊ฐ€์„œ๋Š” ์•ˆ ๋ฉ๋‹ˆ๋‹ค. ๋‹ค์Œ ๊ทธ๋ฆผ์€ ํ•œ ๊ฒŒ์ž„ํŒ๊ณผ ์ด๋ฅผ ๋ฎ๋Š” ๋ฐฉ๋ฒ•์„ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค. ๊ฒŒ์ž„ํŒ์ด ์ฃผ์–ด์งˆ ๋•Œ ์ด๋ฅผ ๋ฎ๋Š” ๋ฐฉ๋ฒ•์˜ ์ˆ˜๋ฅผ ๊ณ„์‚ฐํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์„ธ์š”. ์‹œ๊ฐ„ ๋ฐ ๋ฉ”๋ชจ๋ฆฌ ์ œํ•œ ํ”„๋กœ๊ทธ๋žจ์€ 2์ดˆ ์•ˆ์— ์‹คํ–‰๋˜์–ด์•ผ ํ•˜๋ฉฐ, 64MB ์ดํ•˜์˜ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•ด์•ผ๋งŒ ํ•ฉ๋‹ˆ๋‹ค. ์ž…๋ ฅ ์ž…๋ ฅ์˜ ์ฒซ ์ค„์—๋Š” ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค์˜ ์ˆ˜ C(C=0 and tmp[0]=0 and tmp[1]=0 ..

[python]๋ฐฑ์ค€ 2839๋ฒˆ : ์„คํƒ• ๋ฐฐ๋‹ฌ
Algorithm ๋ฌธ์ œ/BOJ 2020. 2. 1. 23:39

https://www.acmicpc.net/problem/2839 ๋‚˜์˜ ๋‹ต # ๋ฐฑ์ค€ 2839๋ฒˆ : ์„คํƒ• ๋ฐฐ๋‹ฌ # 2020-02-01 num = int(input()) count = 0 while num>=3 : if not(num%5) : # 5์˜ ๋ฐฐ์ˆ˜์ด๋ฉด count+= num/5 break else : count+=1 num-=3 if num==1 or num==2: count = -1 else : count += 0 print(int(count)) ๋ถ„์„ ๋‹ค์ด๋‚˜๋ฏน ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์•ž์„  2๋ฌธ์ œ์˜ ์˜ํ–ฅ์œผ๋กœ ์ฒ˜์Œ์—๋Š” ๋ชจ๋“  ๊ฒฝ์šฐ์˜ ์ˆ˜๋ฅผ ์ฐพ์•„๋ณผ๊นŒ ์ƒ๊ฐํ–ˆ๋‹ค. ํ•˜์ง€๋งŒ ์ด์ „ ๋ฌธ์ œ์™€ ๋‹ฌ๋ฆฌ ์ˆ˜์˜ ๋ฒ”์œ„๊ฐ€ ํ™•์—ฐํžˆ ์ปค์ง„๋ฐ๋‹ค๊ฐ€ ์—ฐ์‚ฐ์˜ ์‹œ๊ฐ„์ด ๋„ˆ๋ฌด ์˜ค๋ž˜๊ฑธ๋ฆด ๊ฒƒ ๊ฐ™์•„์„œ ์ด๋Ÿฌํ•œ ๋ฐฉ์‹์€ ์•„๋‹ ๊ฑฐ๋ผ๊ณ  ๊ฒฐ๋ก  ๋‚ด๋ ธ๋‹ค. ๊ฒฝ์šฐ์˜ ์ˆ˜ (ํŠน์ง• ์ฐพ๊ธฐ) ๊ทธ..

[python]๋ฐฑ์ค€ 9095๋ฒˆ : 1,2,3 ๋”ํ•˜๊ธฐ
Algorithm ๋ฌธ์ œ/BOJ 2020. 2. 1. 17:08

๋ฌธ์ œ : ๋ฐฑ์ค€ 9095๋ฒˆ _ 1,2,3 ๋”ํ•˜๊ธฐ https://www.acmicpc.net/problem/9095 ๋‚˜์˜ ๋‹ต # ๋ฐฑ์ค€ 9095๋ฒˆ: 1,2,3 ๋”ํ•˜๊ธฐ # 2020-02-01 case = int(input()) # ์ž…๋ ฅ๋ฐ›๊ธฐ num = [] def cpt_num(n): if n>3: # 3๋ณด๋‹ค ํฌ๋ฉด return cpt_num(n-3) + cpt_num(n-2) + cpt_num(n-1) elif n==3: # 3์ด๋ฉด return 4 elif n==2: # 2์ด๋ฉด return 2 elif n==1: # 1์ด๋ฉด return 1 while case : case-=1 num.append(int(input())) for n in num: print(cpt_num(n)) ์–ด์ œ ๋ฐฐ์› ๋˜ ๋‹ค์ด๋‚˜๋ฏน ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ํ™œ..