[c++] BOJ 18119 :: ๋‹จ์–ด ์•”๊ธฐ
Algorithm ๋ฌธ์ œ/BOJ 2021. 8. 10. 21:58

๋ฌธ์ œ ๋‹จ์–ด ์•”๊ธฐ ๋ฌธ์ œ ๋ฐ”๋กœ๊ฐ€๊ธฐ ์ค€์„์ด๋Š” ์˜์–ด ๋‹จ์–ด๋ฅผ ์™ธ์šฐ๋ ค๊ณ  ํ•œ๋‹ค. ์‚ฌ์ „์—๋Š” N๊ฐ€์ง€ ๋‹จ์–ด๊ฐ€ ์ ํ˜€ ์žˆ๋‹ค. ๋ชจ๋“  ๋‹จ์–ด๋Š” ์†Œ๋ฌธ์ž์ด๋‹ค. ๋‹จ์–ด ์•ˆ์— ์žˆ๋Š” ๋ชจ๋“  ์•ŒํŒŒ๋ฒณ์„ ์•Œ ๋•Œ, ๊ทธ ๋‹จ์–ด๋ฅผ ์™„์ „ํžˆ ์•ˆ๋‹ค๊ณ  ํ•œ๋‹ค. ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ฟผ๋ฆฌ๋“ค์ด ์ฃผ์–ด์ง„๋‹ค. 1 x : ์•ŒํŒŒ๋ฒณ x๋ฅผ ์žŠ๋Š”๋‹ค. 2 x : ์•ŒํŒŒ๋ฒณ x๋ฅผ ๊ธฐ์–ตํ•ด ๋‚ธ๋‹ค. ์ฒ˜์Œ์— ๋ชจ๋“  ์•ŒํŒŒ๋ฒณ์„ ๊ธฐ์–ตํ•˜๋Š” ์ƒํƒœ๊ณ , ๋ชจ์Œ์€ ์™„๋ฒฝํ•˜๊ฒŒ ์™ธ์› ๊ธฐ ๋•Œ๋ฌธ์— ์ ˆ๋Œ€ ์žŠ์ง€ ์•Š๋Š”๋‹ค. ๊ฐ ์ฟผ๋ฆฌ๋งˆ๋‹ค ์™„์ „ํžˆ ์•Œ๊ณ  ์žˆ๋Š” ๋‹จ์–ด์˜ ๊ฐœ์ˆ˜๋ฅผ ์ถœ๋ ฅํ•˜์—ฌ๋ผ. ํ’€์ด ๋‹จ์–ด์˜ ๊ธธ์ด๊ฐ€ 10^3์ด๋‚˜ ๋˜๋ฏ€๋กœ ์ผ์ผ์ด ๋น„๊ตํ•˜๊ธฐ ํž˜๋“ฌ bit ์—ฐ์‚ฐ์„ ํ†ตํ•ด ๋น„๊ตํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ์•ˆ ์ƒ๊ฐ ์•ŒํŒŒ๋ฒณ 26์ž๋ฆฌ๋ฅผ bitmap์œผ๋กœ ๋‚˜ํƒ€๋‚ผ ๋•Œ 2^26 < (2^3)^9 < 10^10 ์ด๋ฏ€๋กœ ์ถฉ๋ถ„ํžˆ int ํ˜•์œผ๋กœ ํ‘œํ˜„ ๊ฐ€๋Šฅ ์ฝ”๋“œ #include #incl..

[c++] BOJ 1062 :: ๊ฐ€๋ฅด์นจ
Algorithm ๋ฌธ์ œ/BOJ 2021. 8. 10. 21:57

๋ฌธ์ œ ๊ฐ€๋ฅด์นจ ๋ฌธ์ œ ๋ฐ”๋กœ๊ฐ€๊ธฐ ๋‚จ๊ทน์— ์‚ฌ๋Š” ๊น€์ง€๋ฏผ ์„ ์ƒ๋‹˜์€ ํ•™์ƒ๋“ค์ด ๋˜๋„๋ก์ด๋ฉด ๋งŽ์€ ๋‹จ์–ด๋ฅผ ์ฝ์„ ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋ ค๊ณ  ํ•œ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์ง€๊ตฌ์˜จ๋‚œํ™”๋กœ ์ธํ•ด ์–ผ์Œ์ด ๋…น์•„์„œ ๊ณง ํ•™๊ต๊ฐ€ ๋ฌด๋„ˆ์ง€๊ธฐ ๋•Œ๋ฌธ์—, ๊น€์ง€๋ฏผ์€ K๊ฐœ์˜ ๊ธ€์ž๋ฅผ ๊ฐ€๋ฅด์น  ์‹œ๊ฐ„ ๋ฐ–์— ์—†๋‹ค. ๊น€์ง€๋ฏผ์ด ๊ฐ€๋ฅด์น˜๊ณ  ๋‚œ ํ›„์—๋Š”, ํ•™์ƒ๋“ค์€ ๊ทธ K๊ฐœ์˜ ๊ธ€์ž๋กœ๋งŒ ์ด๋ฃจ์–ด์ง„ ๋‹จ์–ด๋งŒ์„ ์ฝ์„ ์ˆ˜ ์žˆ๋‹ค. ๊น€์ง€๋ฏผ์€ ์–ด๋–ค K๊ฐœ์˜ ๊ธ€์ž๋ฅผ ๊ฐ€๋ฅด์ณ์•ผ ํ•™์ƒ๋“ค์ด ์ฝ์„ ์ˆ˜ ์žˆ๋Š” ๋‹จ์–ด์˜ ๊ฐœ์ˆ˜๊ฐ€ ์ตœ๋Œ€๊ฐ€ ๋˜๋Š”์ง€ ๊ณ ๋ฏผ์— ๋น ์กŒ๋‹ค. ๋‚จ๊ทน์–ธ์–ด์˜ ๋ชจ๋“  ๋‹จ์–ด๋Š” "anta"๋กœ ์‹œ์ž‘๋˜๊ณ , "tica"๋กœ ๋๋‚œ๋‹ค. ๋‚จ๊ทน์–ธ์–ด์— ๋‹จ์–ด๋Š” N๊ฐœ ๋ฐ–์— ์—†๋‹ค๊ณ  ๊ฐ€์ •ํ•œ๋‹ค. ํ•™์ƒ๋“ค์ด ์ฝ์„ ์ˆ˜ ์žˆ๋Š” ๋‹จ์–ด์˜ ์ตœ๋Œ“๊ฐ’์„ ๊ตฌํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์‹œ์˜ค. ํ’€์ด brute force๋กœ ์ฐพ๊ธฐ (N์ด ์ž‘์Œ) ์กฐ๊ฑด๋“ค์„ ์ด์šฉํ•˜์—ฌ ์ตœ๋Œ€ํ•œ ์‹œ๊ฐ„๋ณต์žก๋„ ์ค„์ด๊ธฐ ..

[c++] BOJ 12888 :: ์™„์ „ ์ด์ง„ ํŠธ๋ฆฌ ๋„๋กœ ๋„คํŠธ์›Œํฌ
Algorithm ๋ฌธ์ œ/BOJ 2021. 7. 20. 20:57

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

[c++] BOJ 19535 :: ใ„ทใ„ทใ„ทใ…ˆ
Algorithm ๋ฌธ์ œ/BOJ 2021. 7. 11. 22:56

๋‚œ์ด๋„ : ๊ณจ๋“œ 3 ๋ฌธ์ œ ใ„ทใ„ทใ„ทใ…ˆ ๋ฌธ์ œ ๋ฐ”๋กœ๊ฐ€๊ธฐ ์ •์ ์ด ๋„ค ๊ฐœ ์ด์ƒ ์žˆ๋Š” ์ž„์˜์˜ ํŠธ๋ฆฌ์— ๋Œ€ํ•ด, ๊ทธ ํŠธ๋ฆฌ์—์„œ ์ •์  ๋„ค ๊ฐœ๋กœ ์ด๋ฃจ์–ด์ง„ ์ง‘ํ•ฉ์„ ๊ณ ๋ฅด์ž. ์ „์ฒด ํŠธ๋ฆฌ์˜ ๊ฐ„์„ ๋“ค ์ค‘ ์ง‘ํ•ฉ์— ์†ํ•œ ๋‘ ์ •์ ์„ ์ž‡๋Š” ๊ฐ„์„ ๋งŒ์„ ๋‚จ๊ฒผ์„ ๋•Œ, ๋„ค ๊ฐœ์˜ ์ •์ ์ด ํ•˜๋‚˜์˜ ํŠธ๋ฆฌ ํ˜•ํƒœ๋กœ ์ด์–ด์ง€๊ฒŒ ๋œ๋‹ค๋ฉด ‘ใ„ท’ ๋ชจ์–‘์ด๊ฑฐ๋‚˜ ‘ใ…ˆ’ ๋ชจ์–‘์ผ ๊ฒƒ์ด๋‹ค. ํŠธ๋ฆฌ์—์„œ ‘ใ„ท’์˜ ๊ฐœ์ˆ˜์™€ ‘ใ…ˆ’์˜ ๊ฐœ์ˆ˜๋ฅผ ๊ฐ๊ฐ ํŠธ๋ฆฌ์—์„œ ‘ใ„ท’ ๋ชจ์–‘, ‘ใ…ˆ’ ๋ชจ์–‘์„ ์ด๋ฃจ๋Š” ์ •์  ๋„ค ๊ฐœ์งœ๋ฆฌ ์ง‘ํ•ฉ์˜ ๊ฐœ์ˆ˜๋ผ๊ณ  ํ•˜์ž. ์ด์ œ, ๋™ํ˜„์ด๋Š” ์„ธ์ƒ์˜ ๋ชจ๋“  ํŠธ๋ฆฌ๋ฅผ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์„ธ ์ข…๋ฅ˜๋กœ ๋‚˜๋ˆ„์—ˆ๋‹ค. D-ํŠธ๋ฆฌ : ‘ใ„ท’์ด ‘ใ…ˆ’์˜ 3๋ฐฐ๋ณด๋‹ค ๋งŽ์€ ํŠธ๋ฆฌ G-ํŠธ๋ฆฌ : ‘ใ„ท’์ด ‘ใ…ˆ’์˜ 3๋ฐฐ๋ณด๋‹ค ์ ์€ ํŠธ๋ฆฌ DUDUDUNGA-ํŠธ๋ฆฌ : ‘ใ„ท’์ด ‘ใ…ˆ’์˜ ์ •ํ™•ํžˆ 3๋ฐฐ๋งŒํผ ์žˆ๋Š” ํŠธ๋ฆฌ ์‹ ์ด ๋‚œ ๋™ํ˜„์ด๋Š” ํŠธ๋ฆฌ๋งŒ ๋ณด..

React-query :: Mutations
์›น (WEB)/๊ณต๋ถ€ 2021. 7. 10. 12:36

query์™€ ๋‹ค๋ฅด๊ฒŒ CUD์— ์‚ฌ์šฉ๋œ๋‹ค. https://react-query.tanstack.com/guides/mutations Mutations Subscribe to our newsletter The latest TanStack news, articles, and resources, sent to your inbox. react-query.tanstack.com ์‚ฌ์šฉ์˜ˆ์ œ const mutation = useMutation(newTodo => axios.post('/todos', newTodo)) return ( {mutation.isLoading ? ( 'Adding todo...' ) : ( {mutation.isError ? ( An error occurred: {mutation.error.mes..

React-query :: Query
์›น (WEB)/๊ณต๋ถ€ 2021. 7. 10. 12:35

๊ธฐ๋ณธ ์‚ฌ์šฉ const info = useQuery('unique_key', fetchData); // fetchData๋Š” promise ๋ฐ˜ํ™˜ uniqueํ•œ key๋กœ ์ •์˜ํ•˜๋ฉฐ, key์— ๋ฌถ์ด๋Š” ๋ฐ์ดํ„ฐ๋Š” ๋น„๋™๊ธฐ ๋ฐ์ดํ„ฐ์ด๋‹ค. useQuery๊ฐ€ ๋ฐ˜ํ™˜ํ•˜๋Š” result๋Š” ๋น„๋™๊ธฐ ๋ฐ์ดํ„ฐ์˜ ์ƒํƒœ๋ฅผ ๋‹ด๊ณ  ์žˆ๋‹ค. ์ƒํƒœ loading isLoading์ด true๊ฐ€ ๋œ๋‹ค. error isError๊ฐ€ true๊ฐ€ ๋˜๋ฉฐ, error์— ์—๋Ÿฌ ์ •๋ณด๊ฐ€ ๋‹ด๊ธด๋‹ค. success isSuccess๊ฐ€ true๊ฐ€ ๋˜๋ฉฐ, data์— ์ •๋ณด๊ฐ€ ๋‹ด๊ธด๋‹ค. idle ์‚ฌ์šฉ ์˜ˆ์ œ const { isLoading, isError, data, error } = useQuery('key', fetchData); // const { status, data, erro..

[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 1600 :: ๋ง์ด ๋˜๊ณ ํ”ˆ ์›์ˆญ์ด
Algorithm ๋ฌธ์ œ/BOJ 2021. 6. 25. 23:00

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