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

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

[python]๋ฐฑ์ค€ 1699๋ฒˆ : ์ œ๊ณฑ์ˆ˜์˜ ํ•ฉ
Algorithm ๋ฌธ์ œ/BOJ 2020. 3. 6. 22:31

์‹œ๊ฐ„ ์ œํ•œ ๋ฉ”๋ชจ๋ฆฌ ์ œํ•œ ์ œ์ถœ ์ •๋‹ต ๋งž์€ ์‚ฌ๋žŒ ์ •๋‹ต ๋น„์œจ 2 ์ดˆ 128 MB 20321 8384 6181 41.113% ๋ฌธ์ œ ์–ด๋–ค ์ž์—ฐ์ˆ˜ N์€ ๊ทธ๋ณด๋‹ค ์ž‘๊ฑฐ๋‚˜ ๊ฐ™์€ ์ œ๊ณฑ์ˆ˜๋“ค์˜ ํ•ฉ์œผ๋กœ ๋‚˜ํƒ€๋‚ผ ์ˆ˜ ์žˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด 11=32+12+12(3๊ฐœ ํ•ญ)์ด๋‹ค. ์ด๋Ÿฐ ํ‘œํ˜„๋ฐฉ๋ฒ•์€ ์—ฌ๋Ÿฌ ๊ฐ€์ง€๊ฐ€ ๋  ์ˆ˜ ์žˆ๋Š”๋ฐ, 11์˜ ๊ฒฝ์šฐ 11=22+22+12+12+12(5๊ฐœ ํ•ญ)๋„ ๊ฐ€๋Šฅํ•˜๋‹ค. ์ด ๊ฒฝ์šฐ, ์ˆ˜ํ•™์ž ์ˆŒํฌ๋ผํ…Œ์Šค๋Š” “11์€ 3๊ฐœ ํ•ญ์˜ ์ œ๊ณฑ์ˆ˜ ํ•ฉ์œผ๋กœ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ๋‹ค.”๋ผ๊ณ  ๋งํ•œ๋‹ค. ๋˜ํ•œ 11์€ ๊ทธ๋ณด๋‹ค ์ ์€ ํ•ญ์˜ ์ œ๊ณฑ์ˆ˜ ํ•ฉ์œผ๋กœ ํ‘œํ˜„ํ•  ์ˆ˜ ์—†์œผ๋ฏ€๋กœ, 11์„ ๊ทธ ํ•ฉ์œผ๋กœ์จ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ๋Š” ์ œ๊ณฑ์ˆ˜ ํ•ญ์˜ ์ตœ์†Œ ๊ฐœ์ˆ˜๋Š” 3์ด๋‹ค. ์ฃผ์–ด์ง„ ์ž์—ฐ์ˆ˜ N์„ ์ด๋ ‡๊ฒŒ ์ œ๊ณฑ์ˆ˜๋“ค์˜ ํ•ฉ์œผ๋กœ ํ‘œํ˜„ํ•  ๋•Œ์— ๊ทธ ํ•ญ์˜ ์ตœ์†Œ๊ฐœ์ˆ˜๋ฅผ ๊ตฌํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์‹œ์˜ค. ์ž…๋ ฅ ์ฒซ์งธ ์ค„์—..

[python]๋ฐฑ์ค€ 6549๋ฒˆ : ํžˆ์Šคํ† ๊ทธ๋žจ์—์„œ ๊ฐ€์žฅ ํฐ ์ง์‚ฌ๊ฐํ˜•
Algorithm ๋ฌธ์ œ/BOJ 2020. 3. 6. 22:30

์‹œ๊ฐ„ ์ œํ•œ ๋ฉ”๋ชจ๋ฆฌ ์ œํ•œ ์ œ์ถœ ์ •๋‹ต ๋งž์€ ์‚ฌ๋žŒ ์ •๋‹ต ๋น„์œจ 1 ์ดˆ 256 MB 16367 3904 2522 25.125% ๋ฌธ์ œ ํžˆ์Šคํ† ๊ทธ๋žจ์€ ์ง์‚ฌ๊ฐํ˜• ์—ฌ๋Ÿฌ ๊ฐœ๊ฐ€ ์•„๋ž˜์ชฝ์œผ๋กœ ์ •๋ ฌ๋˜์–ด ์žˆ๋Š” ๋„ํ˜•์ด๋‹ค. ๊ฐ ์ง์‚ฌ๊ฐํ˜•์€ ๊ฐ™์€ ๋„ˆ๋น„๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์ง€๋งŒ, ๋†’์ด๋Š” ์„œ๋กœ ๋‹ค๋ฅผ ์ˆ˜๋„ ์žˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ์™ผ์ชฝ ๊ทธ๋ฆผ์€ ๋†’์ด๊ฐ€ 2, 1, 4, 5, 1, 3, 3์ด๊ณ  ๋„ˆ๋น„๊ฐ€ 1์ธ ์ง์‚ฌ๊ฐํ˜•์œผ๋กœ ์ด๋ฃจ์–ด์ง„ ํžˆ์Šคํ† ๊ทธ๋žจ์ด๋‹ค. ํžˆ์Šคํ† ๊ทธ๋žจ์—์„œ ๊ฐ€์žฅ ๋„“์ด๊ฐ€ ํฐ ์ง์‚ฌ๊ฐํ˜•์„ ๊ตฌํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์‹œ์˜ค. ์ž…๋ ฅ ์ž…๋ ฅ์€ ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค ์—ฌ๋Ÿฌ ๊ฐœ๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ๋‹ค. ๊ฐ ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค๋Š” ํ•œ ์ค„๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ๊ณ , ์ง์‚ฌ๊ฐํ˜•์˜ ์ˆ˜ n์ด ๊ฐ€์žฅ ์ฒ˜์Œ์œผ๋กœ ์ฃผ์–ด์ง„๋‹ค. (1 ≤ n ≤ 100,000) ๊ทธ ๋‹ค์Œ n๊ฐœ์˜ ์ •์ˆ˜ h1, ..., hn (0 ≤ hi ≤ 1,000,000,..

[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] ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œ ํ•ด๊ฒฐ ์ „๋žต 1๊ถŒ :: 7์žฅ ์ •๋ฆฌ
Algorithm ๋ฌธ์ œ/์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œํ•ด๊ฒฐ์ „๋žต 2020. 2. 29. 12:46

7. ๋ถ„ํ•  ์ •๋ณต 7.1 ๋„์ž… ๋ถ„ํ•  ์ •๋ณต( Divide & Conquer)์€ ๊ฐ€์žฅ ์œ ๋ช…ํ•œ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋””์ž์ธ ํŒจ๋Ÿฌ๋‹ค์ž„์œผ๋กœ, ๊ฐ๊ฐœ ๊ฒฉํŒŒ๋ผ๊ณ  ์„ค๋ช…ํ•  ์ˆ˜ ์žˆ์Œ ์ฃผ์–ด์ง„ ๋ฌธ์ œ๋ฅผ ๋‘˜ ์ด์ƒ์˜ ๋ถ€๋ถ„ ๋ฌธ์ œ๋กœ ๋‚˜๋ˆˆ ํ›„, ์žฌ๊ท€ ํ˜ธ์ถœ์„ ์ด์šฉํ•ด ๊ฐ๊ฐ์˜ ๋‹ต์„ ๊ณ„์‚ฐํ•˜๊ณ , ๋ถ€๋ถ„ ๋ฌธ์ œ์˜ ๋‹ต์„ ์ด์šฉํ•ด ์ „์ฒด์˜ ๋‹ต์„ ๊ณ„์‚ฐํ•˜๋Š” ๋ฐฉ์‹ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๊ตฌ์„ฑ divide ๋ฌธ์ œ๋ฅผ ๋” ์ž‘์€ ๋ฌธ์ œ๋กœ ๋ถ„ํ•  merge ๊ฐ ๋ฌธ์ œ์˜ ๋‹ต์„ ์ „์ฒด ๋ฌธ์ œ์˜ ๋‹ต์œผ๋กœ ๋ณ‘ํ•ฉ base case ๋”์ด์ƒ ๋‹ต์„ ๋ถ„ํ• ํ•˜์ง€ ์•Š๊ณ  ํ’€ ์ˆ˜ ์žˆ๋Š” ๋งค์šฐ ์ž‘์€ ๋ฌธ์ œ ์ ์šฉ๊ฐ€๋Šฅํ•œ ๋ฌธ์ œ์˜ ํŠน์„ฑ ๋ฌธ์ œ๋ฅผ ๋ถ€๋ถ„ ๋ฌธ์ œ๋กœ ๋‚˜๋ˆ„๋Š” ์ž์—ฐ์Šค๋Ÿฌ์šด ๋ฐฉ๋ฒ•์ด ์กด์žฌํ•ด์•ผํ•จ ๋ถ€๋ถ„ ๋ฌธ์ œ์˜ ๋‹ต์„ ์กฐํ•ฉํ•ด ์ „์ฒด ๋ฌธ์ œ์˜ ๋‹ต์„ ๊ณ„์‚ฐํ•˜๋Š” ํšจ์œจ์ ์ธ ๋ฐฉ๋ฒ•์ด ์žˆ์–ด์•ผํ•จ ์žฅ์  ๋Œ€๋ถ€๋ถ„์˜ ๊ฒฝ์šฐ์—์„œ ์ž‘์—…์„ ๋น ๋ฅด๊ฒŒ ์ฒ˜๋ฆฌํ•ด์คŒ ์˜ˆ์ œ : ์ˆ˜์—ด์˜ ๋น ๋ฅธ ํ•ฉ๊ณผ ํ–‰๋ ฌ์˜ ๋น ๋ฅธ..