๋ชฉ๋ก๋ฐฑ์ค€ (44)

Hello Ocean! ๐ŸŒผ

[๋ฐฑ์ค€/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
[๋ฐฑ์ค€/C++] 19535. ใ„ทใ„ทใ„ทใ…ˆ

๋ฌธ์ œ https://www.acmicpc.net/problem/19535 ํ’€์ด ใ„ท ํŠธ๋ฆฌ : (n๊ณผ ์—ฐ๊ฒฐ๋œ ๋…ธ๋“œ(a ์ œ์™ธ)) - (n) - (n๊ณผ ์—ฐ๊ฒฐ๋œ ๋…ธ๋“œ(a)) - (a์™€ ์—ฐ๊ฒฐ๋œ ๋…ธ๋“œ(n ์ œ์™ธ)) ๋”ฐ๋ผ์„œ ๊ฒฝ์šฐ์˜ ์ˆ˜๋Š” ๋ชจ๋“  ๋…ธ๋“œ(n)์— ๋Œ€ํ•ด์„œ, n๊ณผ ์—ฐ๊ฒฐ๋œ ๋…ธ๋“œ๊ฐ€ x๊ฐœ๋ผ๊ณ  ํ•˜๊ณ , n๊ณผ ์—ฐ๊ฒฐ๋œ ์–ด๋–ค ๋…ธ๋“œ a์™€ ์—ฐ๊ฒฐ๋œ ๋…ธ๋“œ๊ฐ€ y๊ฐœ๋ผ๊ณ  ํ•˜๋ฉด, (x-1) * (y-1) ์˜ ํ•ฉ์œผ๋กœ ๊ตฌํ•  ์ˆ˜ ์žˆ๋‹ค. * ์ค‘๋ณต์„ ๋ง‰๊ธฐ ์œ„ํ•ด, n์ด a๋ณด๋‹ค ๋…ธ๋“œ๋ฒˆํ˜ธ๊ฐ€ ํฐ ๊ฒฝ์šฐ๋งŒ ์…ˆ ใ…ˆ ํŠธ๋ฆฌ : (n) - (n๊ณผ ์—ฐ๊ฒฐ๋œ ๋…ธ๋“œ 3๊ฐœ) ๋”ฐ๋ผ์„œ ๊ฒฝ์šฐ์˜ ์ˆ˜๋Š”, ์—ฐ๊ฒฐ๋œ ๋…ธ๋“œ์˜ ๊ฐœ์ˆ˜ a๊ฐ€ 3 ์ด์ƒ์ธ ๋…ธ๋“œ n์— ๋Œ€ํ•ด์„œ aC3 ์˜ ์ด ํ•ฉ์„ ๊ตฌํ•˜๋ฉด ๋œ๋‹ค. ์ฝ”๋“œ #include #include using namespace std; int N; vector..

Algorithm 2021. 7. 13. 21:38
[๋ฐฑ์ค€/C++] 3584. ๊ฐ€์žฅ ๊ฐ€๊นŒ์šด ๊ณตํ†ต์กฐ์ƒ

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

Algorithm 2021. 7. 6. 20:57
[๋ฐฑ์ค€/C++] 5052. ์ „ํ™”๋ฒˆํ˜ธ ๋ชฉ๋ก

๋ฌธ์ œ https://www.acmicpc.net/problem/5052 ์ „ํ™”๋ฒˆํ˜ธ ๋ชฉ๋ก์ด ์ฃผ์–ด์ง„๋‹ค. ์ด๋•Œ, ์ด ๋ชฉ๋ก์ด ์ผ๊ด€์„ฑ์ด ์žˆ๋Š”์ง€ ์—†๋Š”์ง€๋ฅผ ๊ตฌํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์‹œ์˜ค. ์ „ํ™”๋ฒˆํ˜ธ ๋ชฉ๋ก์ด ์ผ๊ด€์„ฑ์„ ์œ ์ง€ํ•˜๋ ค๋ฉด, ํ•œ ๋ฒˆํ˜ธ๊ฐ€ ๋‹ค๋ฅธ ๋ฒˆํ˜ธ์˜ ์ ‘๋‘์–ด์ธ ๊ฒฝ์šฐ๊ฐ€ ์—†์–ด์•ผ ํ•œ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ์ „ํ™”๋ฒˆํ˜ธ ๋ชฉ๋ก์ด ์•„๋ž˜์™€ ๊ฐ™์€ ๊ฒฝ์šฐ๋ฅผ ์ƒ๊ฐํ•ด๋ณด์ž ๊ธด๊ธ‰์ „ํ™”: 911 ์ƒ๊ทผ: 97 625 999 ์„ ์˜: 91 12 54 26 ์ด ๊ฒฝ์šฐ์— ์„ ์˜์ด์—๊ฒŒ ์ „ํ™”๋ฅผ ๊ฑธ ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์ด ์—†๋‹ค. ์ „ํ™”๊ธฐ๋ฅผ ๋“ค๊ณ  ์„ ์˜์ด ๋ฒˆํ˜ธ์˜ ์ฒ˜์Œ ์„ธ ์ž๋ฆฌ๋ฅผ ๋ˆ„๋ฅด๋Š” ์ˆœ๊ฐ„ ๋ฐ”๋กœ ๊ธด๊ธ‰์ „ํ™”๊ฐ€ ๊ฑธ๋ฆฌ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ๋”ฐ๋ผ์„œ, ์ด ๋ชฉ๋ก์€ ์ผ๊ด€์„ฑ์ด ์—†๋Š” ๋ชฉ๋ก์ด๋‹ค. ์ž…๋ ฅ๋œ ์ „ํ™”๋ฒˆํ˜ธ ๋ชฉ๋ก์— ๋Œ€ํ•ด ์ผ๊ด€์„ฑ์ด ์žˆ์œผ๋ฉด YES, ์—†์œผ๋ฉด NO๋ฅผ ์ถœ๋ ฅํ•˜๋ฉด ๋˜๋Š” ๋ฌธ์ œ์ด๋‹ค. ๋ชฉ๋ก์— ๋˜‘๊ฐ™์€ ์ „ํ™”๋ฒˆํ˜ธ๊ฐ€ ๋‘ ๊ฐœ ..

Algorithm 2021. 7. 6. 20:51
[๋ฐฑ์ค€/C++] 1967. ํŠธ๋ฆฌ์˜ ์ง€๋ฆ„

๋ฌธ์ œ https://www.acmicpc.net/problem/1967 1967๋ฒˆ: ํŠธ๋ฆฌ์˜ ์ง€๋ฆ„ ํŒŒ์ผ์˜ ์ฒซ ๋ฒˆ์งธ ์ค„์€ ๋…ธ๋“œ์˜ ๊ฐœ์ˆ˜ n(1 ≤ n ≤ 10,000)์ด๋‹ค. ๋‘˜์งธ ์ค„๋ถ€ํ„ฐ n-1๊ฐœ์˜ ์ค„์— ๊ฐ ๊ฐ„์„ ์— ๋Œ€ํ•œ ์ •๋ณด๊ฐ€ ๋“ค์–ด์˜จ๋‹ค. ๊ฐ„์„ ์— ๋Œ€ํ•œ ์ •๋ณด๋Š” ์„ธ ๊ฐœ์˜ ์ •์ˆ˜๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ๋‹ค. ์ฒซ ๋ฒˆ์งธ ์ •์ˆ˜๋Š” ๊ฐ„์„ ์ด ์—ฐ www.acmicpc.net ํ’€์ด ์ฒ˜์Œ์— ๋ฌธ์ œ๋ฅผ ๋ดค์„ ๋•Œ, ์–ด๋–ค ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์ด์šฉํ•ด์•ผ ํ•˜๋Š”์ง€ ๊ฐ์ด ์˜ค์ง€ ์•Š์•˜๋‹ค. ๊ทธ๋ž˜์„œ ๊ฒ€์ƒ‰์„ ์ข€ ํ•ด๋ณด์•˜๋Š”๋ฐ, ๊ณต์‹์ฒ˜๋Ÿผ ํŠธ๋ฆฌ์˜ ์ง€๋ฆ„์„ ๊ตฌํ•˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด ์กด์žฌํ–ˆ๊ณ , ํ•ด๋‹น ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์ฆ๋ช…ํ•ด๋†“์€ ๊ธ€๋“ค๋„ ๋งŽ์•˜๋‹ค. https://blog.myungwoo.kr/112 (์ฐธ๊ณ ํ•œ ๋ธ”๋กœ๊ทธ) [ํŠธ๋ฆฌ์˜ ์ง€๋ฆ„ ์•Œ๊ณ ๋ฆฌ์ฆ˜] 1. ์ž„์˜์˜ ์ •์  x๋ฅผ ์žก๋Š”๋‹ค. (๋ณดํ†ต ๋ฃจํŠธ๋กœ ์žก์Œ) 2. x์—์„œ ๊ฐ€์žฅ ..

Algorithm 2021. 6. 29. 20:43