[python]๋ฐฑ์ค€ 1780๋ฒˆ : ์ข…์ด์˜ ๊ฐœ์ˆ˜
Algorithm ๋ฌธ์ œ/BOJ 2020. 3. 6. 22:26

์‹œ๊ฐ„ ์ œํ•œ ๋ฉ”๋ชจ๋ฆฌ ์ œํ•œ ์ œ์ถœ ์ •๋‹ต ๋งž์€ ์‚ฌ๋žŒ ์ •๋‹ต ๋น„์œจ 2 ์ดˆ 256 MB 9503 5463 4173 58.667% ๋ฌธ์ œ N×Nํฌ๊ธฐ์˜ ํ–‰๋ ฌ๋กœ ํ‘œํ˜„๋˜๋Š” ์ข…์ด๊ฐ€ ์žˆ๋‹ค. ์ข…์ด์˜ ๊ฐ ์นธ์—๋Š” -1, 0, 1์˜ ์„ธ ๊ฐ’ ์ค‘ ํ•˜๋‚˜๊ฐ€ ์ €์žฅ๋˜์–ด ์žˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ์ด ํ–‰๋ ฌ์„ ์ ์ ˆํ•œ ํฌ๊ธฐ๋กœ ์ž๋ฅด๋ ค๊ณ  ํ•˜๋Š”๋ฐ, ์ด๋•Œ ๋‹ค์Œ์˜ ๊ทœ์น™์— ๋”ฐ๋ผ ์ž๋ฅด๋ ค๊ณ  ํ•œ๋‹ค. ๋งŒ์•ฝ ์ข…์ด๊ฐ€ ๋ชจ๋‘ ๊ฐ™์€ ์ˆ˜๋กœ ๋˜์–ด ์žˆ๋‹ค๋ฉด ์ด ์ข…์ด๋ฅผ ๊ทธ๋Œ€๋กœ ์‚ฌ์šฉํ•œ๋‹ค. (1)์ด ์•„๋‹Œ ๊ฒฝ์šฐ์—๋Š” ์ข…์ด๋ฅผ ๊ฐ™์€ ํฌ๊ธฐ์˜ 9๊ฐœ์˜ ์ข…์ด๋กœ ์ž๋ฅด๊ณ , ๊ฐ๊ฐ์˜ ์ž˜๋ฆฐ ์ข…์ด์— ๋Œ€ํ•ด์„œ (1)์˜ ๊ณผ์ •์„ ๋ฐ˜๋ณตํ•œ๋‹ค. ์ด์™€ ๊ฐ™์ด ์ข…์ด๋ฅผ ์ž˜๋ž์„ ๋•Œ, -1๋กœ๋งŒ ์ฑ„์›Œ์ง„ ์ข…์ด์˜ ๊ฐœ์ˆ˜, 0์œผ๋กœ๋งŒ ์ฑ„์›Œ์ง„ ์ข…์ด์˜ ๊ฐœ์ˆ˜, 1๋กœ๋งŒ ์ฑ„์›Œ์ง„ ์ข…์ด์˜ ๊ฐœ์ˆ˜๋ฅผ ๊ตฌํ•ด๋‚ด๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์‹œ์˜ค. ์ž…๋ ฅ ์ฒซ์งธ ์ค„์— N(1≤N≤3^7, N์€ 3^..

[python]๋ฐฑ์ค€ 5620๋ฒˆ : ๊ฐ€์žฅ ๊ฐ€๊นŒ์šด ๋‘ ์ ์˜ ๊ฑฐ๋ฆฌ
Algorithm ๋ฌธ์ œ/BOJ 2020. 3. 1. 20:21

https://www.acmicpc.net/problem/5620 ์‹œ๊ฐ„ ์ œํ•œ ๋ฉ”๋ชจ๋ฆฌ ์ œํ•œ ์ œ์ถœ ์ •๋‹ต ๋งž์€ ์‚ฌ๋žŒ ์ •๋‹ต ๋น„์œจ 1 ์ดˆ 256 MB 1700 558 294 40.664% ๋ฌธ์ œ ํ‰๋ฉด์ƒ์— n๊ฐœ์˜ ์  (P1, .... , Pn) ์ด ๋†“์—ฌ์ ธ์žˆ๋‹ค๊ณ  ํ–ˆ์„ ๋•Œ, ๊ฑฐ๋ฆฌ๊ฐ€ ์ตœ์†Œ์ธ ๋‘ ๊ฐœ์˜ ์ ์„ ๊ตฌํ•˜๊ณ  ๊ทธ ๊ฑฐ๋ฆฌ๋ฅผ ์•Œ๊ณ  ์‹ถ๋‹ค. ์ž…๋ ฅ ์ž…๋ ฅ์€ ์ฒซ ๋ฒˆ์งธ ์ค„์— ์ •์ˆ˜๋กœ ๋œ ์ ์˜ ๊ฐœ์ˆ˜ n์ด ์ฃผ์–ด์ง„๋‹ค. ๋‘ ๋ฒˆ์งธ ์ค„๋ถ€ํ„ฐ n+1๋ฒˆ์งธ ์ค„๊นŒ์ง€ 2๊ฐœ์˜ ์ •์ˆ˜ x,y๊ฐ€ ๊ณต๋ฐฑ์„ ์‚ฌ์ด์— ๋‘๊ณ  ์ฃผ์–ด์ง„๋‹ค. i+1๋ฒˆ์งธ ์ค„์€ Pi ์˜ x,y ์ขŒํ‘œ๋ฅผ ์˜๋ฏธํ•˜๊ณ  n๊ฐœ์˜ ์ ์— ๋Œ€ํ•ด์„œ ์ฃผ์–ด์ง€๊ฒŒ ๋œ๋‹ค. ์ ์˜ ๊ฐœ์ˆ˜๋Š” 2 โ‰ฆ n โ‰ฆ 500000 , ์ขŒํ‘œ์˜ ๋ฒ”์œ„๋Š” -10000 โ‰ฆ x,y โ‰ฆ10000๋กœ ์ฃผ์–ด์ง„๋‹ค. ๋˜ํ•œ, ๋ชจ๋“  ์ ์˜ ์ขŒํ‘œ๋Š” ๊ฐ™์€ ๊ฒƒ์ด ์—†์ด ๋‹ค๋ฅธ ๊ฒƒ์œผ๋กœ ..

[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]๋ฐฑ์ค€ 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)) ์–ด์ œ ๋ฐฐ์› ๋˜ ๋‹ค์ด๋‚˜๋ฏน ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ํ™œ..