[c++] ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๊ฐœ๋…๊ณต๋ถ€ :: ์ž๋ฃŒ๊ตฌ์กฐ - ํž™
์ปดํ“จํ„ฐ๊ณผํ•™ (CS)/Algorithm 2020. 7. 28. 14:21

ํž™ ์šฉ๋„ ๊ตฌํ˜„ ์ข…๋ฅ˜ ์—ฐ์‚ฐ ์ •๋ ฌ ํž™ ํž™์€ ์ถ”์ƒ์  ์ž๋ฃŒํ˜•์ธ ์šฐ์„ ์ˆœ์œ„ ํ๋ฅผ ๊ตฌํ˜„ํ•˜๊ธฐ ์œ„ํ•ด์„œ ๋งŒ๋“ค์–ด์ง„ ์ž๋ฃŒ๊ตฌ์กฐ์ด๋‹ค. partial-ordering (๋ถ€๋ถ„ ์ •๋ ฌ)์„ ๋งŒ์กฑํ•˜๋Š” left-complete binary tree (์ขŒ์ธก ์™„์ „ ์ด์ง„ ํŠธ๋ฆฌ) ์ด๋‹ค. ๋ถ€๋ถ„ ์ •๋ ฌ์„ ๋งŒ์กฑํ•œ๋‹ค๋Š” ๋ง์€ '๋ถ€๋ชจ ๋…ธ๋“œ์™€ ์ž์‹๋…ธ๋“œ' ๊ฐ„์—๋Š” ํŠน์ • ๋Œ€์†Œ๊ด€๊ณ„ ์„ฑ๋ฆฝํ•˜์ง€๋งŒ, 'ํ˜•์ œ๋…ธ๋“œ'๊ฐ„์—๋Š” ํ•ด๋‹น ๋Œ€์†Œ๊ด€๊ณ„๊ฐ€ ์„ฑ๋ฆฝํ•˜์ง€ ์•Š๋Š”๋‹ค๋Š” ๋œป์ด๋‹ค. ์ด์ง„ ํƒ์ƒ‰ ํŠธ๋ฆฌ์—์„œ๋Š” ์ค‘๋ณต๋œ ๊ฐ’์„ ํ—ˆ์šฉํ•˜์ง€ ์•Š์ง€๋งŒ ํž™ ํŠธ๋ฆฌ์—์„œ๋Š” ํ—ˆ์šฉํ•œ๋‹ค. ์šฉ๋„ ํž™์€ ์ถ”์ƒ์  ์ž๋ฃŒํ˜•์ธ ์šฐ์„ ์ˆœ์œ„ ํ๋ฅผ ๊ตฌํ˜„ํ•˜๊ธฐ ์œ„ํ•ด์„œ ๋งŒ๋“ค์–ด์ง„ ์ž๋ฃŒ๊ตฌ์กฐ์ด๋‹ค. ๋ฐฐ์—ด๊ณผ ์—ฐ๊ฒฐ๋ฆฌ์ŠคํŠธ๋ฅผ ์ด์šฉํ•˜๋ฉด ์‚ฝ์ž…๊ณผ ์‚ญ์ œ ์—ฐ์‚ฐ ์ค‘ ํ•˜๋‚˜๊ฐ€ O(n)์ผ ์ˆ˜ ๋ฐ–์— ์—†๋‹ค. ํ•˜์ง€๋งŒ ํž™์„ ์ด์šฉํ•˜๋ฉด ๊ฐ€์žฅ ํฐ ๊ฐ’์ด๋‚˜ ๊ฐ€์žฅ ์ž‘์€ ๊ฐ’์„ ๋‘˜ ๋‹ค O(logn)๋งŒ์— ๋น ..

[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] ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œ ํ•ด๊ฒฐ ์ „๋žต 1๊ถŒ :: ์†Œํ’ (p155) ๋ฌธ์ œ
Algorithm ๋ฌธ์ œ/์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œํ•ด๊ฒฐ์ „๋žต 2020. 2. 12. 01:28

6.3 ๋ฌธ์ œ: ์†Œํ’ (๋ฌธ์ œ ID: PICNIC, ๋‚œ์ด๋„: ํ•˜) ๋ฌธ์ œ ์•ˆ๋“œ๋กœ๋ฉ”๋‹ค ์œ ์น˜์› ์ต์Šคํ”„๋ ˆ์Šค๋ฐ˜์—์„œ๋Š” ๋‹ค์Œ ์ฃผ์— ์œจ๋™๊ณต์›์œผ๋กœ ์†Œํ’์„ ๊ฐ‘๋‹ˆ๋‹ค. ์›์„ ์„ ์ƒ๋‹˜์€ ์†Œํ’ ๋•Œ ํ•™์ƒ๋“ค์„ ๋‘ ๋ช…์”ฉ ์ง์„ ์ง€์–ด ํ–‰๋™ํ•˜๊ฒŒ ํ•˜๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ๋ฐ ์„œ๋กœ ์นœ๊ตฌ๊ฐ€ ์•„๋‹Œ ํ•™์ƒ๋“ค๋ผ๋ฆฌ ์ง์„ ์ง€์–ด ์ฃผ๋ฉด ์„œ๋กœ ์‹ธ์šฐ๊ฑฐ๋‚˜ ๊ฐ™์ด ๋Œ์•„๋‹ค๋‹ˆ์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์—, ํ•ญ์ƒ ์„œ๋กœ ์นœ๊ตฌ์ธ ํ•™์ƒ๋“ค๋ผ๋ฆฌ๋งŒ ์ง์„ ์ง€์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๊ฐ ํ•™์ƒ๋“ค์˜ ์Œ์— ๋Œ€ํ•ด ์ด๋“ค์ด ์„œ๋กœ ์นœ๊ตฌ์ธ์ง€ ์—ฌ๋ถ€๊ฐ€ ์ฃผ์–ด์งˆ ๋•Œ, ํ•™์ƒ๋“ค์„ ์ง ์ง€์„ ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์˜ ์ˆ˜๋ฅผ ๊ณ„์‚ฐํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์„ธ์š”. ์ง์ด ๋˜๋Š” ํ•™์ƒ๋“ค์ด ์ผ๋ถ€๋งŒ ๋‹ค๋ฅด๋”๋ผ๋„ ๋‹ค๋ฅธ ๋ฐฉ๋ฒ•์ด๋ผ๊ณ  ๋ด…๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ๋‹ค์Œ ๋‘ ๊ฐ€์ง€ ๋ฐฉ๋ฒ•์€ ์„œ๋กœ ๋‹ค๋ฅธ ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค. (ํƒœ์—ฐ,์ œ์‹œ์นด)(์จ๋‹ˆ,ํ‹ฐํŒŒ๋‹ˆ)(ํšจ์—ฐ,์œ ๋ฆฌ) (ํƒœ์—ฐ,์ œ์‹œ์นด)(์จ๋‹ˆ,์œ ๋ฆฌ)(ํšจ์—ฐ, ํ‹ฐํŒŒ๋‹ˆ) ์‹œ..