๋ชฉ๋กAlgorithm (101)

Hello Ocean! ๐ŸŒผ

[C++/๋ฐฑ์ค€] 17244. ์•„๋งž๋‹ค์šฐ์‚ฐ

๋ฌธ์ œ https://www.acmicpc.net/problem/17244 17244๋ฒˆ: ์•„๋งž๋‹ค์šฐ์‚ฐ ๊ฒฝ์žฌ์”จ๋Š” ์ €๋… ์•ฝ์†์„ ๊ฐ€๊ธฐ ์ „ ์ฑ™๊ธฐ์ง€ ์•Š์€ ๋ฌผ๊ฑด๋“ค์ด ์žˆ๋Š” ์ง€ ํ™•์ธํ•˜๊ณ  ์žˆ๋‹ค. ํ•„์š”ํ•œ ๋ฌผ๊ฑด์€ ์ „๋ถ€ ์ฑ™๊ธด ๊ฒƒ ๊ฐ™์•˜๊ณ  ์™ธ์ถœ ํ›„ ๋Œ์•„์˜ค๋Š” ๊ธธ์— ๊ฒฝ์žฌ์”จ๋Š” ์™ธ์ณค๋‹ค. "์•„ ๋งž๋‹ค ์šฐ์‚ฐ!!!" ๊ฒฝ์žฌ ์”จ๋Š” ๋งค๋ฒˆ ์™ธ์ถœ www.acmicpc.net 2์ฐจ์› ๋งต์—์„œ, ์ถœ๋ฐœ์—์„œ ๋„์ฐฉ์ ์œผ๋กœ ๊ฐ€๋Š”๋ฐ, X๋กœ ํ‘œ์‹œ๋œ ํ•„์š”ํ•œ ๋ฌผ๊ฑด๋“ค์„ ๋ชจ๋‘ ์ฑ™๊ฒจ์„œ ๋‚˜๊ฐ€๋Š” ์ตœ์†Œ ์ด๋™๊ฑฐ๋ฆฌ๋ฅผ ๊ตฌํ•˜๋Š” ๋ฌธ์ œ์ด๋‹ค. ํ’€์ด ๊ทธ๋ž˜ํ”„์ƒ์—์„œ ์ตœ์†Œ ์ด๋™ ํšŸ์ˆ˜๋ฅผ ๊ตฌํ•˜๋Š” ๋ฌธ์ œ์ด๊ธฐ ๋•Œ๋ฌธ์— BFS๋ฅผ ์ด์šฉํ–ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ , ๊ทธ๋ž˜ํ”„์ƒ์— X๊ฐ€ ์žˆ๋Š” ์ง€์ ์„ ๋ชจ๋‘ ๋ฐฉ๋ฌธํ•˜๋Š”๊ฒŒ ์กฐ๊ฑด์ด๊ธฐ ๋•Œ๋ฌธ์— X๋ฐฉ๋ฌธ์ฒดํฌ๋ฅผ ์–ด๋–ป๊ฒŒ ํ• ์ง€ ๊ณ ๋ฏผํ•˜๋‹ค๊ฐ€, X๊ฐ€ ์ตœ๋Œ€ 5๊ฐœ๋ผ๊ณ  ํ•ด์„œ ๊ธธ์ด 5์งœ๋ฆฌ ๋น„ํŠธ๋งˆ์Šคํฌ๋ฅผ ์ด์šฉํ•ด์„œ ๋ฐฉ๋ฌธ์ฒดํฌ๋ฅผ ํ•ด์ฃผ..

Algorithm 2021. 8. 3. 15:35
[C/C++] scanf, scanf_s๋กœ ์ž…๋ ฅ๋ฐ›์„ ๋•Œ "\n" ์ด ์„ž์—ฌ ๋“ค์–ด๊ฐ€๋Š” ๋ฌธ์ œ

์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œ๋ฅผ ํ’€ ๋•Œ, ์›๋ž˜ cin/cout์„ ์ด์šฉํ–ˆ์—ˆ๋Š”๋ฐ ๋ฐฑ์ค€์—์„œ ๋‚œ์ด๋„๊ฐ€ ๊ณจ๋“œ ์ด์ƒ์ธ ๋ฌธ์ œ์ค‘์— ๊ฐ„ํ˜น cin/cout์œผ๋กœ ์ธํ•ด์„œ ์‹œ๊ฐ„์ดˆ๊ณผ๊ฐ€ ๋ฐœ์ƒํ•˜๋Š” ๋ฌธ์ œ๋“ค์ด ์žˆ์—ˆ๋‹ค. cin.tie(NULL) ๊ฐ™์€ ๋ฌธ๋ฒ•์„ ์ถ”๊ฐ€ํ•ด์„œ ์ž…์ถœ๋ ฅ ์‹œ๊ฐ„์„ ์ค„์ด๋Š” ๋ฐฉ๋ฒ•๋„ ์žˆ์—ˆ์ง€๋งŒ, ๊ทธ๋ž˜๋„ scanf/printf๊ฐ€ ์ œ์ผ ๋น ๋ฅธ ๊ฒƒ ๊ฐ™์•„ ์–ผ๋งˆ์ „ ๋ถ€ํ„ฐ๋Š” scanf/printf๋ฅผ ์‚ฌ์šฉํ•˜๋ ค๊ณ  ๋…ธ๋ ฅํ•˜๊ณ  ์žˆ๋‹ค. ๋‹ค์‹œ ์ด๊ฑธ ์จ๋ณด๋‹ˆ cin/cout์ด ์–ผ๋งˆ๋‚˜ ํŽธ๋ฆฌํ•˜๊ณ  ์นœ์ ˆํ•œ ๋ฌธ๋ฒ•์ธ์ง€ ๊นจ๋‹ซ๊ฒŒ ๋˜์—ˆ๋‹ค.. https://www.acmicpc.net/problem/17244 17244๋ฒˆ: ์•„๋งž๋‹ค์šฐ์‚ฐ ๊ฒฝ์žฌ์”จ๋Š” ์ €๋… ์•ฝ์†์„ ๊ฐ€๊ธฐ ์ „ ์ฑ™๊ธฐ์ง€ ์•Š์€ ๋ฌผ๊ฑด๋“ค์ด ์žˆ๋Š” ์ง€ ํ™•์ธํ•˜๊ณ  ์žˆ๋‹ค. ํ•„์š”ํ•œ ๋ฌผ๊ฑด์€ ์ „๋ถ€ ์ฑ™๊ธด ๊ฒƒ ๊ฐ™์•˜๊ณ  ์™ธ์ถœ ํ›„ ๋Œ์•„์˜ค๋Š” ๊ธธ์— ๊ฒฝ์žฌ์”จ๋Š” ์™ธ์ณค๋‹ค. "์•„ ..

Algorithm 2021. 7. 30. 11:02
[๋ฐฑ์ค€/C++] 11437, 11438. LCA 1,2

๋ฌธ์ œ https://www.acmicpc.net/problem/11437 -> LCA 1 https://www.acmicpc.net/problem/11438 -> LCA 2 ์ฃผ์–ด์ง„ ๋‘ ๋…ธ๋“œ์— ๋Œ€ํ•ด LCA(๊ฐ€์žฅ ๊ฐ€๊นŒ์šด ๊ณตํ†ต ์กฐ์ƒ)์„ ๊ตฌํ•˜๋ฉด ๋˜๋Š” ๋ฌธ์ œ์ด๋‹ค. 1๋ฒˆ๊ณผ 2๋ฒˆ์˜ ์ฐจ์ด๋Š” ๋…ธ๋“œ์˜ ์ตœ๋Œ€ ๊ฐฏ์ˆ˜ ๋ฐ ์‹œ๊ฐ„ ์ œํ•œ์˜ ์ฐจ์ด์ด๋‹ค. LCA2๊ฐ€ ํ›จ์”ฌ ๋นก๋นกํ•˜๋‹ค. ํ’€์ด 1. 11437 LCA1๋ฒˆ ํ’€์ด ์—ฐ๊ฒฐ๋œ ๋‘ ๋…ธ๋“œ a,b๊ฐ€ N-1๊ฐœ์˜ ์ค„์— ๊ฑธ์ณ์„œ ์ž…๋ ฅ๋˜๋Š”๋ฐ, a,b์ค‘์— ์–ด๋–ค ๋…ธ๋“œ๊ฐ€ ๋ถ€๋ชจ๋…ธ๋“œ์ธ์ง€๋Š” ์ž…๋ ฅ ๋ฐ›์„ ๋•Œ์—๋Š” ์•Œ ์ˆ˜๊ฐ€ ์—†๋‹ค. ๊ทธ๋ž˜์„œ ์ฒ˜์Œ์—๋Š” ์—ฐ๊ฒฐ๋ฆฌ์ŠคํŠธ ํ˜•ํƒœ๋กœ ์ €์žฅํ–ˆ๋‹ค๊ฐ€, ์ž…๋ ฅ์„ ๋‹ค ๋ฐ›์€ ํ›„์— BFS๋ฅผ ํ†ตํ•ด ๋ฃจํŠธ์ธ 1๋ถ€ํ„ฐ ํƒ€๊ณ  ๋“ค์–ด๊ฐ€์„œ ํŠธ๋ฆฌ๊ตฌ์กฐ๋ฅผ ํŒŒ์•…ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ–ˆ๋‹ค. (๊ฐ ๋…ธ๋“œ์˜ ๋ถ€๋ชจ์™€, ๊นŠ์ด ์ €์žฅ) ๊ทธ๋ฆฌ๊ณ  LCA๋ฅผ..

Algorithm 2021. 7. 27. 20:55
[๋ฐฑ์ค€/C++] 12888. ์™„์ „ ์ด์ง„ ํŠธ๋ฆฌ ๋„๋กœ ๋„คํŠธ์›Œํฌ

๋ฌธ์ œ https://www.acmicpc.net/problem/12888 BOJ ๋‚˜๋ผ๋Š” ๋„์‹œ์™€ ๋‘ ๋„์‹œ๋ฅผ ์—ฐ๊ฒฐํ•˜๋Š” ๋„๋กœ๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ๋‹ค. ์ด ๋‚˜๋ผ์˜ ๋„๋กœ ๋„คํŠธ์›Œํฌ๋Š” ์™„์ „ ์ด์ง„ ํŠธ๋ฆฌ์˜ ํ˜•ํƒœ๋ฅผ ๊ฐ€์ง„๋‹ค. ์ˆ˜๋นˆ์ด๋Š” BOJ ๋‚˜๋ผ์˜ ๋„๋กœ ๋„คํŠธ์›Œํฌ ํŠธ๋ฆฌ์˜ ๋†’์ด H๋ฅผ ์•Œ๊ณ  ์žˆ๋‹ค. ํŠธ๋ฆฌ์˜ ๋†’์ด๋ฅผ ์•ˆ๋‹ค๋ฉด, ๋„์‹œ์˜ ๊ฐœ์ˆ˜์™€ ๋„๋กœ์˜ ๊ฐœ์ˆ˜๋„ ๊ตฌํ•  ์ˆ˜ ์žˆ๋‹ค. ํŠธ๋ฆฌ์˜ ๋†’์ด๊ฐ€ H์ธ ๊ฒฝ์šฐ์— ๋„์‹œ์˜ ๊ฐœ์ˆ˜๋Š” 2(H+1)-1๊ฐœ ์ด๊ณ , ๋„๋กœ์˜ ๊ฐœ์ˆ˜๋Š” 2(H+1)-2๊ฐœ๊ฐ€ ๋œ๋‹ค. ์•„๋ž˜ ๊ทธ๋ฆผ์€ H = 2์ผ ๋•Œ, ๊ทธ๋ฆผ์ด๋‹ค. ์ˆ˜๋นˆ์ด๋Š” ๋„๋กœ ๋„คํŠธ์›Œํฌ์— ์ฐจ๋ฅผ ๋ณด๋‚ด๋ ค๊ณ  ํ•œ๋‹ค. ๋ชจ๋“  ์ฐจ๋Š” ์‹œ์ž‘ ๋„์‹œ์™€ ๋„์ฐฉ ๋„์‹œ๊ฐ€ ์žˆ์œผ๋ฉฐ, ๊ฐ™์€ ๋„์‹œ๋ฅผ ๋‘ ๋ฒˆ ์ด์ƒ ๋ฐฉ๋ฌธํ•˜์ง€ ์•Š๋Š”๋‹ค. ์ฐจ์˜ ์‹œ์ž‘ ๋„์‹œ์™€ ๋„์ฐฉ ๋„์‹œ๊ฐ€ ๊ฐ™์„ ์ˆ˜๋„ ์žˆ๋‹ค. ๋ชจ๋“  ๋„์‹œ๋ฅผ ๋ฐฉ๋ฌธํ•œ ์ฐจ์˜ ๊ฐœ์ˆ˜๊ฐ€ ๋ชจ๋‘ 1๊ฐœ๊ฐ€ ๋˜..

Algorithm 2021. 7. 20. 21:44
[๋ฐฑ์ค€/C++] 10838. ํŠธ๋ฆฌ

๋ฌธ์ œ https://www.acmicpc.net/problem/10838 N๊ฐœ์˜ ๋…ธ๋“œ๋กœ ๊ตฌ์„ฑ๋œ ๋ฃจํŠธ๊ฐ€ ์žˆ๋Š” ํŠธ๋ฆฌ๊ฐ€ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ฃผ์–ด์ง„๋‹ค. ๊ฐ ๋…ธ๋“œ๋Š” 0๋ถ€ํ„ฐ N-1๊นŒ์ง€์˜ ๋ฒˆํ˜ธ๋กœ ๊ตฌ๋ณ„๋˜๊ณ , 0๋ฒˆ ๋…ธ๋“œ๋Š” ๋ฃจํŠธ ๋…ธ๋“œ์ด๊ณ , ๋‚˜๋จธ์ง€ ๋…ธ๋“œ ๊ฐ๊ฐ์€ 0๋ฒˆ ๋…ธ๋“œ์˜ ์ž์‹ ๋…ธ๋“œ์ด๋‹ค. ํŠธ๋ฆฌ์— ์ ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์—ฐ์‚ฐ์€ ์„ธ ์ข…๋ฅ˜์ด๋ฉฐ, ์ด๋ฅผ ํ†ตํ•ด ํŠธ๋ฆฌ์˜ ๋ชจ์–‘์„ ๋ฐ”๊พธ๊ฑฐ๋‚˜ ํŠธ๋ฆฌ ์—์ง€์— ์ƒ‰์น ์„ ํ•  ์ˆ˜ ์žˆ๋‹ค. ๊ฐ ์—ฐ์‚ฐ๊ณผ ๊ทธ ์˜๋ฏธ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค. paint(a, b, c): a๋ฒˆ ๋…ธ๋“œ์™€ b๋ฒˆ ๋…ธ๋“œ๋ฅผ ์ž‡๋Š” ์ตœ๋‹จ ๊ฒฝ๋กœ๋ฅผ ์ฐพ์€ ํ›„, ๊ฒฝ๋กœ ์ƒ์— ์žˆ๋Š” ๋ชจ๋“  ์—์ง€๋ฅผ ์ƒ‰๊น” c๋กœ ์น ํ•œ๋‹ค. move(a, b): a๋ฒˆ ๋…ธ๋“œ์˜ ๋ถ€๋ชจ ๋…ธ๋“œ๋ฅผ b๋ฒˆ ๋…ธ๋“œ๋กœ ๋ฐ”๊พผ๋‹ค. ๋‹จ, b๋ฒˆ ๋…ธ๋“œ๋Š” a๋ฒˆ ๋…ธ๋“œ๋ฅผ ๋ฃจํŠธ๋กœ ํ•˜๋Š” ๋ถ€ํŠธ๋ฆฌ(subtree)์— ์†ํ•˜์ง€ ์•Š๋Š”๋‹ค. ๋ถ€๋ชจ ๋…ธ๋“œ๋ฅผ ๋ฐ”๊พธ๊ธฐ..

Algorithm 2021. 7. 20. 19:50