[c++] BOJ 3584 :: ๊ฐ€์žฅ ๊ฐ€๊นŒ์šด ๊ณตํ†ต ์กฐ์ƒ
Algorithm ๋ฌธ์ œ/BOJ 2021. 7. 3. 15:30

๋‚œ์ด๋„ : ๊ณจ๋“œ 4 ๊ฑธ๋ฆฐ ์‹œ๊ฐ„ : 40๋ถ„ ๋ฌธ์ œ ๊ฐ€์žฅ ๊ฐ€๊นŒ์šด ๊ณตํ†ต ์กฐ์ƒ ๋ฌธ์ œ ๋ฐ”๋กœ๊ฐ€๊ธฐ ๋ฃจํŠธ๊ฐ€ ์žˆ๋Š” ํŠธ๋ฆฌ(rooted tree)๊ฐ€ ์ฃผ์–ด์ง€๊ณ , ๊ทธ ํŠธ๋ฆฌ ์ƒ์˜ ๋‘ ์ •์ ์ด ์ฃผ์–ด์งˆ ๋•Œ ๊ทธ๋“ค์˜ ๊ฐ€์žฅ ๊ฐ€๊นŒ์šด ๊ณตํ†ต ์กฐ์ƒ(Nearest Common Anscestor)์€ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ •์˜๋ฉ๋‹ˆ๋‹ค. ๋‘ ๋…ธ๋“œ์˜ ๊ฐ€์žฅ ๊ฐ€๊นŒ์šด ๊ณตํ†ต ์กฐ์ƒ์€, ๋‘ ๋…ธ๋“œ๋ฅผ ๋ชจ๋‘ ์ž์†์œผ๋กœ ๊ฐ€์ง€๋ฉด์„œ ๊นŠ์ด๊ฐ€ ๊ฐ€์žฅ ๊นŠ์€(์ฆ‰ ๋‘ ๋…ธ๋“œ์— ๊ฐ€์žฅ ๊ฐ€๊นŒ์šด) ๋…ธ๋“œ๋ฅผ ๋งํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด 15์™€ 11๋ฅผ ๋ชจ๋‘ ์ž์†์œผ๋กœ ๊ฐ–๋Š” ๋…ธ๋“œ๋Š” 4์™€ 8์ด ์žˆ์ง€๋งŒ, ๊ทธ ์ค‘ ๊นŠ์ด๊ฐ€ ๊ฐ€์žฅ ๊นŠ์€(15์™€ 11์— ๊ฐ€์žฅ ๊ฐ€๊นŒ์šด) ๋…ธ๋“œ๋Š” 4 ์ด๋ฏ€๋กœ ๊ฐ€์žฅ ๊ฐ€๊นŒ์šด ๊ณตํ†ต ์กฐ์ƒ์€ 4๊ฐ€ ๋ฉ๋‹ˆ๋‹ค. ๋ฃจํŠธ๊ฐ€ ์žˆ๋Š” ํŠธ๋ฆฌ๊ฐ€ ์ฃผ์–ด์ง€๊ณ , ๋‘ ๋…ธ๋“œ๊ฐ€ ์ฃผ์–ด์งˆ ๋•Œ ๊ทธ ๋‘ ๋…ธ๋“œ์˜ ๊ฐ€์žฅ ๊ฐ€๊นŒ์šด ๊ณตํ†ต ์กฐ์ƒ์„ ์ฐพ๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์„ธ์š”..

[c++] BOJ 5052 :: ์ „ํ™”๋ฒˆํ˜ธ ๋ชฉ๋ก
Algorithm ๋ฌธ์ œ/BOJ 2021. 7. 3. 15:28

๋‚œ์ด๋„ : ๊ณจ๋“œ 4 ๊ฑธ๋ฆฐ ์‹œ๊ฐ„ : 20๋ถ„ ๋ฌธ์ œ ์ „ํ™”๋ฒˆํ˜ธ ๋ชฉ๋ก ๋ฌธ์ œ ๋ฐ”๋กœ๊ฐ€๊ธฐ ์ „ํ™”๋ฒˆํ˜ธ ๋ชฉ๋ก์ด ์ฃผ์–ด์ง„๋‹ค. ์ด๋•Œ, ์ด ๋ชฉ๋ก์ด ์ผ๊ด€์„ฑ์ด ์žˆ๋Š”์ง€ ์—†๋Š”์ง€๋ฅผ ๊ตฌํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์‹œ์˜ค. ์ „ํ™”๋ฒˆํ˜ธ ๋ชฉ๋ก์ด ์ผ๊ด€์„ฑ์„ ์œ ์ง€ํ•˜๋ ค๋ฉด, ํ•œ ๋ฒˆํ˜ธ๊ฐ€ ๋‹ค๋ฅธ ๋ฒˆํ˜ธ์˜ ์ ‘๋‘์–ด์ธ ๊ฒฝ์šฐ๊ฐ€ ์—†์–ด์•ผ ํ•œ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ์ „ํ™”๋ฒˆํ˜ธ ๋ชฉ๋ก์ด ์•„๋ž˜์™€ ๊ฐ™์€ ๊ฒฝ์šฐ๋ฅผ ์ƒ๊ฐํ•ด๋ณด์ž ๊ธด๊ธ‰์ „ํ™”: 911 ์ƒ๊ทผ: 97 625 999 ์„ ์˜: 91 12 54 26 ์ด ๊ฒฝ์šฐ์— ์„ ์˜์ด์—๊ฒŒ ์ „ํ™”๋ฅผ ๊ฑธ ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์ด ์—†๋‹ค. ์ „ํ™”๊ธฐ๋ฅผ ๋“ค๊ณ  ์„ ์˜์ด ๋ฒˆํ˜ธ์˜ ์ฒ˜์Œ ์„ธ ์ž๋ฆฌ๋ฅผ ๋ˆ„๋ฅด๋Š” ์ˆœ๊ฐ„ ๋ฐ”๋กœ ๊ธด๊ธ‰์ „ํ™”๊ฐ€ ๊ฑธ๋ฆฌ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ๋”ฐ๋ผ์„œ, ์ด ๋ชฉ๋ก์€ ์ผ๊ด€์„ฑ์ด ์—†๋Š” ๋ชฉ๋ก์ด๋‹ค. ํ’€์ด b+tree ์‚ฌ์šฉ ์ฝ”๋“œ #include #include #include #include using namespace ..

[c++] BOJ 1600 :: ๋ง์ด ๋˜๊ณ ํ”ˆ ์›์ˆญ์ด
Algorithm ๋ฌธ์ œ/BOJ 2021. 6. 25. 23:00

๋‚œ์ด๋„ : ? ๊ฑธ๋ฆฐ ์‹œ๊ฐ„ : 1์‹œ๊ฐ„ ๋ฐ˜ ๋ฌธ์ œ ๋™๋ฌผ์›์—์„œ ๋ง‰ ํƒˆ์ถœํ•œ ์›์ˆญ์ด ํ•œ ๋งˆ๋ฆฌ๊ฐ€ ์„ธ์ƒ๊ตฌ๊ฒฝ์„ ํ•˜๊ณ  ์žˆ๋‹ค. ๊ทธ ๋…€์„์€ ๋ง(Horse)์ด ๋˜๊ธฐ๋ฅผ ๊ฐ„์ ˆํžˆ ์›ํ–ˆ๋‹ค. ๊ทธ๋ž˜์„œ ๊ทธ๋Š” ๋ง์˜ ์›€์ง์ž„์„ ์œ ์‹ฌํžˆ ์‚ดํŽด๋ณด๊ณ  ๊ทธ๋Œ€๋กœ ๋”ฐ๋ผ ํ•˜๊ธฐ๋กœ ํ•˜์˜€๋‹ค. ๋ง์€ ๋ง์ด๋‹ค. ๋ง์€ ๊ฒฉ์žํŒ์—์„œ ์ฒด์Šค์˜ ๋‚˜์ดํŠธ์™€ ๊ฐ™์€ ์ด๋™๋ฐฉ์‹์„ ๊ฐ€์ง„๋‹ค. ๋‹ค์Œ ๊ทธ๋ฆผ์— ๋ง์˜ ์ด๋™๋ฐฉ๋ฒ•์ด ๋‚˜ํƒ€๋‚˜์žˆ๋‹ค. xํ‘œ์‹œํ•œ ๊ณณ์œผ๋กœ ๋ง์ด ๊ฐˆ ์ˆ˜ ์žˆ๋‹ค๋Š” ๋œป์ด๋‹ค. ์ฐธ๊ณ ๋กœ ๋ง์€ ์žฅ์• ๋ฌผ์„ ๋›ฐ์–ด๋„˜์„ ์ˆ˜ ์žˆ๋‹ค. x x x x ๋ง x x x x ๊ทผ๋ฐ ์›์ˆญ์ด๋Š” ํ•œ ๊ฐ€์ง€ ์ฐฉ๊ฐํ•˜๊ณ  ์žˆ๋Š” ๊ฒƒ์ด ์žˆ๋‹ค. ๋ง์€ ์ €๋ ‡๊ฒŒ ์›€์ง์ผ ์ˆ˜ ์žˆ์ง€๋งŒ ์›์ˆญ์ด๋Š” ๋Šฅ๋ ฅ์ด ๋ถ€์กฑํ•ด์„œ ์ด K๋ฒˆ๋งŒ ์œ„์™€ ๊ฐ™์ด ์›€์ง์ผ ์ˆ˜ ์žˆ๊ณ , ๊ทธ ์™ธ์—๋Š” ๊ทธ๋ƒฅ ์ธ์ ‘ํ•œ ์นธ์œผ๋กœ๋งŒ ์›€์ง์ผ ์ˆ˜ ์žˆ๋‹ค. ๋Œ€๊ฐ์„  ๋ฐฉํ–ฅ์€ ์ธ์ ‘ํ•œ ์นธ์— ํฌํ•จ๋˜์ง€ ์•Š๋Š”๋‹ค. ์ด์ œ ์›์ˆญ์ด..

[c++] BOJ 1194 :: ๋‹ฌ์ด ์ฐจ์˜ค๋ฅธ๋‹ค ๊ฐ€์ž
Algorithm ๋ฌธ์ œ/BOJ 2021. 6. 2. 22:00

๋‚œ์ด๋„ : ๊ณจ๋“œ 1 ๊ฑธ๋ฆฐ ์‹œ๊ฐ„ : ๋งŽ์ด ๋ฌธ์ œ ๋‹ฌ์ด ์ฐจ์˜ค๋ฅธ๋‹ค ๊ฐ€์ž ๋ฌธ์ œ ๋ฐ”๋กœ๊ฐ€๊ธฐ ๋ฏผ์‹์ด๋Š” ์ง€๊ธˆ ๋ฏธ๋กœ ์†์— ์žˆ๋‹ค. ๋ฏธ๋กœ๋Š” ์ง์‚ฌ๊ฐํ˜• ๋ชจ์–‘์ด๊ณ , ์—ฌํ–‰๊ธธ์„ ๋– ๋‚˜๊ธฐ ์œ„ํ•ด ๋ฏธ๋กœ๋ฅผ ํƒˆ์ถœํ•˜๋ ค๊ณ  ํ•œ๋‹ค. ๋ฏธ๋กœ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๊ตฌ์„ฑ๋˜์–ด์ ธ์žˆ๋‹ค. ๋นˆ ๊ณณ : ์–ธ์ œ๋‚˜ ์ด๋™ํ•  ์ˆ˜ ์žˆ๋‹ค. ('.‘๋กœ ํ‘œ์‹œ๋จ) ๋ฒฝ : ์ ˆ๋Œ€ ์ด๋™ํ•  ์ˆ˜ ์—†๋‹ค. (‘#’) ์—ด์‡  : ์–ธ์ œ๋‚˜ ์ด๋™ํ•  ์ˆ˜ ์žˆ๋‹ค. ์ด ๊ณณ์— ์ฒ˜์Œ ๋“ค์–ด๊ฐ€๋ฉด ์—ด์‡ ๋ฅผ ์ง‘๋Š”๋‹ค. (a - f) ๋ฌธ : ๋Œ€์‘ํ•˜๋Š” ์—ด์‡ ๊ฐ€ ์žˆ์„ ๋•Œ๋งŒ ์ด๋™ํ•  ์ˆ˜ ์žˆ๋‹ค. (A - F) ๋ฏผ์‹์ด์˜ ํ˜„์žฌ ์œ„์น˜ : ๋นˆ ๊ณณ์ด๊ณ , ๋ฏผ์‹์ด๊ฐ€ ํ˜„์žฌ ์„œ ์žˆ๋Š” ๊ณณ์ด๋‹ค. (์ˆซ์ž 0) ์ถœ๊ตฌ : ๋‹ฌ์ด ์ฐจ์˜ค๋ฅด๊ธฐ ๋•Œ๋ฌธ์—, ๋ฏผ์‹์ด๊ฐ€ ๊ฐ€์•ผํ•˜๋Š” ๊ณณ์ด๋‹ค. ์ด ๊ณณ์— ์˜ค๋ฉด ๋ฏธ๋กœ๋ฅผ ํƒˆ์ถœํ•œ๋‹ค. (์ˆซ์ž 1) ๋‹ฌ์ด ์ฐจ์˜ค๋ฅด๋Š” ๊ธฐํšŒ๋ฅผ ๋†“์น˜์ง€ ์•Š๊ธฐ ์œ„ํ•ด์„œ, ๋ฏธ๋กœ๋ฅผ ํƒˆ์ถœํ•˜๋ ค..

[c++] BOJ 2250 :: ํŠธ๋ฆฌ์˜ ๋†’์ด์™€ ๋„ˆ๋น„
Algorithm ๋ฌธ์ œ/BOJ 2021. 6. 2. 21:58

๋‚œ์ด๋„ : ๊ณจ๋“œ 2 ๊ฑธ๋ฆฐ ์‹œ๊ฐ„ : 1์‹œ๊ฐ„ ๋ฌธ์ œ ํŠธ๋ฆฌ์˜ ๋†’์ด์™€ ๋„ˆ๋น„ ๋ฌธ์ œ ๋ฐ”๋กœ๊ฐ€๊ธฐ ์ด์ง„ํŠธ๋ฆฌ๋ฅผ ๋‹ค์Œ์˜ ๊ทœ์น™์— ๋”ฐ๋ผ ํ–‰๊ณผ ์—ด์— ๋ฒˆํ˜ธ๊ฐ€ ๋ถ™์–ด์žˆ๋Š” ๊ฒฉ์ž ๋ชจ์–‘์˜ ํ‹€ ์†์— ๊ทธ๋ฆฌ๋ ค๊ณ  ํ•œ๋‹ค. ์ด๋•Œ ๋‹ค์Œ์˜ ๊ทœ์น™์— ๋”ฐ๋ผ ๊ทธ๋ฆฌ๋ ค๊ณ  ํ•œ๋‹ค. ์ด์ง„ํŠธ๋ฆฌ์—์„œ ๊ฐ™์€ ๋ ˆ๋ฒจ(level)์— ์žˆ๋Š” ๋…ธ๋“œ๋Š” ๊ฐ™์€ ํ–‰์— ์œ„์น˜ํ•œ๋‹ค. ํ•œ ์—ด์—๋Š” ํ•œ ๋…ธ๋“œ๋งŒ ์กด์žฌํ•œ๋‹ค. ์ž„์˜์˜ ๋…ธ๋“œ์˜ ์™ผ์ชฝ ๋ถ€ํŠธ๋ฆฌ(left subtree)์— ์žˆ๋Š” ๋…ธ๋“œ๋“ค์€ ํ•ด๋‹น ๋…ธ๋“œ๋ณด๋‹ค ์™ผ์ชฝ์˜ ์—ด์— ์œ„์น˜ํ•˜๊ณ , ์˜ค๋ฅธ์ชฝ ๋ถ€ํŠธ๋ฆฌ(right subtree)์— ์žˆ๋Š” ๋…ธ๋“œ๋“ค์€ ํ•ด๋‹น ๋…ธ๋“œ๋ณด๋‹ค ์˜ค๋ฅธ์ชฝ์˜ ์—ด์— ์œ„์น˜ํ•œ๋‹ค. ๋…ธ๋“œ๊ฐ€ ๋ฐฐ์น˜๋œ ๊ฐ€์žฅ ์™ผ์ชฝ ์—ด๊ณผ ์˜ค๋ฅธ์ชฝ ์—ด ์‚ฌ์ด์—” ์•„๋ฌด ๋…ธ๋“œ๋„ ์—†์ด ๋น„์–ด์žˆ๋Š” ์—ด์€ ์—†๋‹ค. ์ด์™€ ๊ฐ™์€ ๊ทœ์น™์— ๋”ฐ๋ผ ์ด์ง„ํŠธ๋ฆฌ๋ฅผ ๊ทธ๋ฆด ๋•Œ ๊ฐ ๋ ˆ๋ฒจ์˜ ๋„ˆ๋น„๋Š” ๊ทธ ๋ ˆ๋ฒจ์— ํ• ๋‹น๋œ ๋…ธ๋“œ ์ค‘ ๊ฐ€์žฅ ์˜ค๋ฅธ์ชฝ์— ..

[c++] BOJ 1525 :: ํผ์ฆ
Algorithm ๋ฌธ์ œ/BOJ 2021. 5. 26. 18:43

๋‚œ์ด๋„ : ๊ณจ๋“œ 2 ๊ฑธ๋ฆฐ ์‹œ๊ฐ„ : 1์‹œ๊ฐ„ ๋ฌธ์ œ ํผ์ฆ ๋ฌธ์ œ ๋ฐ”๋กœ๊ฐ€๊ธฐ 3×3 ํ‘œ์— ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ˆ˜๊ฐ€ ์ฑ„์›Œ์ ธ ์žˆ๋‹ค. ์˜ค๋ฅธ์ชฝ ์•„๋ž˜ ๊ฐ€์žฅ ๋ ์นธ์€ ๋น„์–ด ์žˆ๋Š” ์นธ์ด๋‹ค. 1 2 3 4 5 6 7 8 ์–ด๋–ค ์ˆ˜์™€ ์ธ์ ‘ํ•ด ์žˆ๋Š” ๋„ค ๊ฐœ์˜ ์นธ ์ค‘์— ํ•˜๋‚˜๊ฐ€ ๋น„์–ด ์žˆ์œผ๋ฉด, ์ˆ˜๋ฅผ ๊ทธ ์นธ์œผ๋กœ ์ด๋™์‹œํ‚ฌ ์ˆ˜๊ฐ€ ์žˆ๋‹ค. ๋ฌผ๋ก  ํ‘œ ๋ฐ”๊นฅ์œผ๋กœ ๋‚˜๊ฐ€๋Š” ๊ฒฝ์šฐ๋Š” ๋ถˆ๊ฐ€๋Šฅํ•˜๋‹ค. ์šฐ๋ฆฌ์˜ ๋ชฉํ‘œ๋Š” ์ดˆ๊ธฐ ์ƒํƒœ๊ฐ€ ์ฃผ์–ด์กŒ์„ ๋•Œ, ์ตœ์†Œ์˜ ์ด๋™์œผ๋กœ ์œ„์™€ ๊ฐ™์€ ์ •๋ฆฌ๋œ ์ƒํƒœ๋ฅผ ๋งŒ๋“œ๋Š” ๊ฒƒ์ด๋‹ค. ํ’€์ด ์ตœ๋‹จ ๊ฒฝ๋กœ ๋ฌธ์ œ์ด๋ฏ€๋กœ bfs ์ด์šฉ memo ํ•ด์•ผ ๋˜‘๊ฐ™์€ ๊ฒฝ๋กœ ๋‹ค์‹œ ํƒ์ƒ‰ x memo๋Š” ์ „์ฒด map์˜ ์ƒํƒœ๋ฅผ ์ €์žฅํ•ด์•ผํ•จ string์œผ๋กœ ์ €์žฅ ์ฝ”๋“œ #include #include #include #include #include using namespace std; int map[..

[c++] BOJ 9019 :: DSLR
Algorithm ๋ฌธ์ œ/BOJ 2021. 5. 26. 18:38

๋‚œ์ด๋„ : ๊ณจ๋“œ 5 ๊ฑธ๋ฆฐ ์‹œ๊ฐ„ : 1์‹œ๊ฐ„ 30๋ถ„ ๋ฌธ์ œ DSLR ๋ฌธ์ œ ๋ฐ”๋กœ๊ฐ€๊ธฐ ํ’€์ด DSLR์ด๋ผ๋Š” 4๊ฐ€์ง€ ๊ฒฝ๋กœ๊ฐ€ ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•˜๊ณ  bfs ์ฝ”๋“œ #include #include #include using namespace std; struct point { int prev; char state; int visited = -1; }; char dslrArr[4] = { 'D', 'S', 'L', 'R' }; int dslrResult(int type, int num) { int tmp; switch (type) { case 0 : return (num* 2) % 10000; case 1 : if (num == 0) return 9999; else return num - 1; case 2 : tmp = num /..

[c++] BOJ 2146 :: ๋‹ค๋ฆฌ ๋งŒ๋“ค๊ธฐ
Algorithm ๋ฌธ์ œ/BOJ 2021. 5. 18. 18:57

๋‚œ์ด๋„ : ๊ณจ๋“œ 3 ๊ฑธ๋ฆฐ ์‹œ๊ฐ„ : 30๋ถ„ ๋ฌธ์ œ ๋‹ค๋ฆฌ ๋งŒ๋“ค๊ธฐ ๋ฌธ์ œ ๋ฐ”๋กœ๊ฐ€๊ธฐ 2146๋ฒˆ: ๋‹ค๋ฆฌ ๋งŒ๋“ค๊ธฐ ์—ฌ๋Ÿฌ ์„ฌ์œผ๋กœ ์ด๋ฃจ์–ด์ง„ ๋‚˜๋ผ๊ฐ€ ์žˆ๋‹ค. ์ด ๋‚˜๋ผ์˜ ๋Œ€ํ†ต๋ น์€ ์„ฌ์„ ์ž‡๋Š” ๋‹ค๋ฆฌ๋ฅผ ๋งŒ๋“ค๊ฒ ๋‹ค๋Š” ๊ณต์•ฝ์œผ๋กœ ์ธ๊ธฐ๋ชฐ์ด๋ฅผ ํ•ด ๋‹น์„ ๋  ์ˆ˜ ์žˆ์—ˆ๋‹ค. ํ•˜์ง€๋งŒ ๋ง‰์ƒ ๋Œ€ํ†ต๋ น์— ์ทจ์ž„ํ•˜์ž, ๋‹ค๋ฆฌ๋ฅผ ๋†“๋Š”๋‹ค๋Š” ๊ฒƒ์ด ์•„๊น๋‹ค www.acmicpc.net ํ’€์ด ๊ฐ€์žฅ ์งง์€ ๋‹ค๋ฆฌ์˜ ๊ธธ์ด == ๊ฐ€์žฅ ๊ฐ€๊นŒ์šด ๋‘ ์  ์‚ฌ์ด์˜ ์ตœ๋‹จ ๊ฑฐ๋ฆฌ ๋ชจ๋“  ์„ฌ ์‚ฌ์ด์˜ ์ตœ๋‹จ ๊ฑฐ๋ฆฌ๋ฅผ ๊ตฌํ•ด์•ผ ํ•จ ๊ฐ ์„ฌ์— ์†ํ•œ ์ ๋“ค๋กœ๋ถ€ํ„ฐ ๋‹ค๋ฅธ ์„ฌ์˜ ์ ๋“ค๊นŒ์ง€์˜ ์ตœ๋‹จ ๊ฑฐ๋ฆฌ ๊ณ„์‚ฐ ๊ฐ€์ค‘์น˜ ์—†์œผ๋ฏ€๋กœ bfs ์ด์šฉ ๊ฐ ์„ฌ์— ์†ํ•˜๋Š” ์ ๋“ค์€ bfs๋กœ ๋”ฐ๋กœ ์ฐพ๊ธฐ ์ฝ”๋“œ #include #include using namespace std; int map[101][101]; int direction[4][2] = { ..