[c++]๋ฐฑ์ค€ 1260๋ฒˆ : DFS์™€ BFS
Algorithm ๋ฌธ์ œ/BOJ 2020. 3. 20. 20:33

๋ฌธ์ œ : ๋ฐฑ์ค€ 1260๋ฒˆ _ DFS์™€ BFS ์‹œ๊ฐ„ ์ œํ•œ ๋ฉ”๋ชจ๋ฆฌ ์ œํ•œ ์ œ์ถœ ์ •๋‹ต ๋งž์€ ์‚ฌ๋žŒ ์ •๋‹ต ๋น„์œจ 2 ์ดˆ 128 MB 87845 28912 16832 31.543% ๋ฌธ์ œ ๊ทธ๋ž˜ํ”„๋ฅผ DFS๋กœ ํƒ์ƒ‰ํ•œ ๊ฒฐ๊ณผ์™€ BFS๋กœ ํƒ์ƒ‰ํ•œ ๊ฒฐ๊ณผ๋ฅผ ์ถœ๋ ฅํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์‹œ์˜ค. ๋‹จ, ๋ฐฉ๋ฌธํ•  ์ˆ˜ ์žˆ๋Š” ์ •์ ์ด ์—ฌ๋Ÿฌ ๊ฐœ์ธ ๊ฒฝ์šฐ์—๋Š” ์ •์  ๋ฒˆํ˜ธ๊ฐ€ ์ž‘์€ ๊ฒƒ์„ ๋จผ์ € ๋ฐฉ๋ฌธํ•˜๊ณ , ๋” ์ด์ƒ ๋ฐฉ๋ฌธํ•  ์ˆ˜ ์žˆ๋Š” ์ ์ด ์—†๋Š” ๊ฒฝ์šฐ ์ข…๋ฃŒํ•œ๋‹ค. ์ •์  ๋ฒˆํ˜ธ๋Š” 1๋ฒˆ๋ถ€ํ„ฐ N๋ฒˆ๊นŒ์ง€์ด๋‹ค. ์ž…๋ ฅ ์ฒซ์งธ ์ค„์— ์ •์ ์˜ ๊ฐœ์ˆ˜ N(1 ≤ N ≤ 1,000), ๊ฐ„์„ ์˜ ๊ฐœ์ˆ˜ M(1 ≤ M ≤ 10,000), ํƒ์ƒ‰์„ ์‹œ์ž‘ํ•  ์ •์ ์˜ ๋ฒˆํ˜ธ V๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. ๋‹ค์Œ M๊ฐœ์˜ ์ค„์—๋Š” ๊ฐ„์„ ์ด ์—ฐ๊ฒฐํ•˜๋Š” ๋‘ ์ •์ ์˜ ๋ฒˆํ˜ธ๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. ์–ด๋–ค ๋‘ ์ •์  ์‚ฌ์ด์— ์—ฌ๋Ÿฌ ๊ฐœ์˜ ๊ฐ„์„ ์ด ์žˆ์„ ์ˆ˜ ์žˆ๋‹ค. ์ž…๋ ฅ์œผ๋กœ..

[python] ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œ ํ•ด๊ฒฐ ์ „๋žต 1๊ถŒ :: ํŒฌ๋ฏธํŒ… (ID: FANMEETING)
Algorithm ๋ฌธ์ œ/์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œํ•ด๊ฒฐ์ „๋žต 2020. 3. 16. 13:17

๋ฌธ์ œ ๊ฐ€์žฅ ๋ฉค๋ฒ„๊ฐ€ ๋งŽ์€ ์•„์ด๋Œ ๊ทธ๋ฃน์œผ๋กœ ๊ธฐ๋„ค์Šค ๋ถ์— ์˜ฌ๋ผ ์žˆ๋Š” ํ˜ผ์„ฑ ํŒ ๊ทธ๋ฃน ํ•˜์ดํผ์‹œ๋‹ˆ์–ด๊ฐ€ ๋ฐ๋ท” 10์ฃผ๋…„ ๊ธฐ๋… ํŒฌ ๋ฏธํŒ…์„ ๊ฐœ์ตœํ–ˆ์Šต๋‹ˆ๋‹ค. ํŒฌ ๋ฏธํŒ…์˜ ํ•œ ์ˆœ์„œ๋กœ, ๋ฉค๋ฒ„๋“ค๊ณผ ์ฐธ๊ฐ€ํ•œ ํŒฌ๋“ค์ด ํฌ์˜น์„ ํ•˜๋Š” ํ–‰์‚ฌ๋ฅผ ๊ฐ–๊ธฐ๋กœ ํ–ˆ์Šต๋‹ˆ๋‹ค. ํ•˜์ดํผ์‹œ๋‹ˆ์–ด์˜ ๋ฉค๋ฒ„๋“ค์€ ์šฐ์„  ๋ฌด๋Œ€์— ์ผ๋ ฌ๋กœ ์„ญ๋‹ˆ๋‹ค. ํŒฌ ๋ฏธํŒ…์— ์ฐธ๊ฐ€ํ•œ M๋ช…์˜ ํŒฌ๋“ค์€ ์ค„์„ ์„œ์„œ ๋งจ ์˜ค๋ฅธ์ชฝ ๋ฉค๋ฒ„์—์„œ๋ถ€ํ„ฐ ์‹œ์ž‘ํ•ด ํ•œ ๋ช…์”ฉ ์™ผ์ชฝ์œผ๋กœ ์›€์ง์ด๋ฉฐ ๋ฉค๋ฒ„๋“ค๊ณผ ํ•˜๋‚˜์”ฉ ํฌ์˜น์„ ํ•ฉ๋‹ˆ๋‹ค. ๋ชจ๋“  ํŒฌ๋“ค์€ ๋™์‹œ์— ํ•œ ๋ช…์”ฉ ์›€์ง์ž…๋‹ˆ๋‹ค. ์•„๋ž˜ ๊ทธ๋ฆผ์€ ํ–‰์‚ฌ ๊ณผ์ •์˜ ์ผ๋ถ€๋ฅผ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค. a~d๋Š” ๋„ค ๋ช…์˜ ํ•˜์ดํผ์‹œ๋‹ˆ์–ด ๋ฉค๋ฒ„๋“ค์ด๊ณ , 0~5๋Š” ์—ฌ์„ฏ ๋ช…์˜ ํŒฌ๋“ค์ž…๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ํ•˜์ดํผ์‹œ๋‹ˆ์–ด์˜ ๋‚จ์„ฑ ๋ฉค๋ฒ„๋“ค์ด ๋‚จ์„ฑ ํŒฌ๊ณผ ํฌ์˜นํ•˜๊ธฐ๊ฐ€ ๋ฏผ๋งํ•˜๋‹ค๊ณ  ์—ฌ๊ฒจ์„œ, ๋‚จ์„ฑ ํŒฌ๊ณผ๋Š” ํฌ์˜น ๋Œ€์‹  ์•…์ˆ˜๋ฅผ ํ•˜๊ธฐ๋กœ ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ค„์„ ์„  ๋ฉค๋ฒ„๋“ค๊ณผ ํŒฌ๋“ค..

[python] ์„ธ๊ทธ๋จผํŠธ ํŠธ๋ฆฌ ๊ตฌํ˜„ํ•˜๊ธฐ (segment tree) - ์ตœ์†Œ๊ฐ’ ๊ตฌํ•˜๊ธฐ
์ปดํ“จํ„ฐ๊ณผํ•™ (CS)/Algorithm 2020. 3. 15. 22:39

์„ธ๊ทธ๋จผํŠธ ํŠธ๋ฆฌ https://www.acmicpc.net/blog/view/9 ๋ฐฑ์ค€๋‹˜ ๊ธ€ ๋ฐฐ์—ด ํฌ๊ธฐ ๊ฒฐ์ • ์„ธ๊ทธ๋จผํŠธ ํŠธ๋ฆฌ๋ฅผ ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด์„œ C++์˜ ๊ฒฝ์šฐ, vector ์ž๋ฃŒํ˜•์„ ์‚ฌ์šฉํ•˜๋Š”๋ฐ python์œผ๋กœ ๊ตฌํ˜„ํ•  ๊ฒƒ์ด๊ธฐ ๋•Œ๋ฌธ์— ๋ฐฐ์—ด์„ ์‚ฌ์šฉํ•˜๋ ค๊ณ  ํ•œ๋‹ค. ๋ฐฐ์—ด์˜ ํฌ๊ธฐ๊ฐ€ ์–ผ๋งˆ๋‚˜ ๋˜์–ด์•ผ ํ• ์ง€ ๊ฐ€๋Š ํ•˜๊ธฐ ์œ„ํ•ด ํฌ๊ธฐ๋ฅผ ๊ฒฐ์ •ํ•ด๋ณด์ž. 2์˜ ์ œ๊ณฑ ์ˆ˜๊ฐ€ ๋ฆฌํ”„ ๋…ธ๋“œ์˜ ์ˆ˜(n)๋กœ ์ฃผ์–ด์ง„๋‹ค๋ฉด ( ๋ถ„์„ํ•ด์•ผํ•  data ๊ฐฏ์ˆ˜๊ฐ€ 2์˜ ์ œ๊ณฑ ์ˆ˜๋ผ๋ฉด ) ๊ฐ ๋‹จ๊ณ„๋งˆ๋‹ค 1/2์”ฉ ์ค„์–ด๋‚˜๊ฐ€๋ฏ€๋กœ log(n)์ด ํ•„์š”ํ•œ ์ด ๋‹จ๊ณ„(ํ™”์‚ดํ‘œ)๊ฐ€ ๋˜๊ณ  ์ „์ฒด ์ธต์˜ ๊ฐฏ์ˆ˜, ์ฆ‰ ๋†’์ด(h)๋Š” log(n)+1์ด ๋œ๋‹ค. ์ตœ์ƒ์œ„ ๋…ธ๋“œ๋ถ€ํ„ฐ 2^(0)๊ฐœ์˜ ๋…ธ๋“œ๋กœ ์‹œ์ž‘ํ•˜์—ฌ ์ธต์ด ์ฆ๊ฐ€ํ•  ์ˆ˜๋ก 2์˜ ์ง€์ˆ˜ ๋˜ํ•œ ์ฆ๊ฐ€ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๊ฝ‰์ฐฌ ์ด์ค‘ ํŠธ๋ฆฌ(full binary tree)์˜ ์ด ๋…ธ๋“œ ..

[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]๋ฐฑ์ค€ 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]๋ฐฑ์ค€ 4811๋ฒˆ : ์•Œ์•ฝ
Algorithm ๋ฌธ์ œ/BOJ 2020. 2. 21. 00:23

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