๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

๋ฐฑ์ค€84

[Java] BOJ 18870 ์ขŒํ‘œ ์••์ถ• ๋ฌธ์ œ ๋ฌธ์ œ ๋งํฌ https://www.acmicpc.net/problem/18870์ˆ˜์ง์„  ์œ„์— N๊ฐœ์˜ ์ขŒํ‘œ X1, X2, ..., XN์ด ์žˆ๋‹ค. ์ด ์ขŒํ‘œ์— ์ขŒํ‘œ ์••์ถ•์„ ์ ์šฉํ•˜๋ ค๊ณ  ํ•œ๋‹ค.X1, X2, ..., XN์— ์ขŒํ‘œ ์••์ถ•์„ ์ ์šฉํ•œ ๊ฒฐ๊ณผ X'1, X'2, ..., X'N๋ฅผ ์ถœ๋ ฅํ•ด๋ณด์ž.Xi๋ฅผ ์ขŒํ‘œ ์••์ถ•ํ•œ ๊ฒฐ๊ณผ X'i์˜ ๊ฐ’์€ Xi > Xj๋ฅผ ๋งŒ์กฑํ•˜๋Š” ์„œ๋กœ ๋‹ค๋ฅธ ์ขŒํ‘œ Xj์˜ ๊ฐœ์ˆ˜์™€ ๊ฐ™์•„์•ผ ํ•œ๋‹ค.์ฒซ์งธ ์ค„์— N์ด ์ฃผ์–ด์ง„๋‹ค.๋‘˜์งธ ์ค„์—๋Š” ๊ณต๋ฐฑ ํ•œ ์นธ์œผ๋กœ ๊ตฌ๋ถ„๋œ X1, X2, ..., XN์ด ์ฃผ์–ด์ง„๋‹ค.์ฒซ์งธ ์ค„์— X'1, X'2, ..., X'N์„ ๊ณต๋ฐฑ ํ•œ ์นธ์œผ๋กœ ๊ตฌ๋ถ„ํ•ด์„œ ์ถœ๋ ฅํ•œ๋‹ค.์•„์ด๋””์–ด์ขŒํ‘œ๊ฐ’์„ ์ €์žฅํ•  ๋•Œ ๋ฐฐ์—ด์— ํ•œ๋ฒˆ ์ €์žฅํ•˜๊ณ  TreeSet์— ํ•œ๋ฒˆ ๋” ์ €์žฅํ•œ๋‹ค.TreeSet์— ์ €์žฅํ•˜๋Š” ์ด์œ ๋Š” ์ค‘๋ณต๊ฐ’์„ ์ œ๊ฑฐํ•˜๊ณ  ์ •๋ ฌํ•˜.. 2024. 8. 15.
[Java] BOJ 18111 ๋งˆ์ธํฌ๋ž˜ํ”„ํŠธ ๋ฌธ์ œ ๋ฌธ์ œ ๋งํฌ https://www.acmicpc.net/problem/18111ํŒ€ ๋ ˆ๋“œ์‹œํ”„ํŠธ๋Š” ๋Œ€ํšŒ ์ค€๋น„๋ฅผ ํ•˜๋‹ค๊ฐ€ ์ง€๋ฃจํ•ด์ ธ์„œ ์ƒŒ๋“œ๋ฐ•์Šค ๊ฒŒ์ž„์ธ ‘๋งˆ์ธํฌ๋ž˜ํ”„ํŠธ’๋ฅผ ์ผฐ๋‹ค.๋งˆ์ธํฌ๋ž˜ํ”„ํŠธ๋Š” 1 × 1 × 1(์„ธ๋กœ, ๊ฐ€๋กœ, ๋†’์ด) ํฌ๊ธฐ์˜ ๋ธ”๋ก๋“ค๋กœ ์ด๋ฃจ์–ด์ง„ 3์ฐจ์› ์„ธ๊ณ„์—์„œ ์ž์œ ๋กญ๊ฒŒ ๋•…์„ ํŒŒ๊ฑฐ๋‚˜ ์ง‘์„ ์ง€์„ ์ˆ˜ ์žˆ๋Š” ๊ฒŒ์ž„์ด๋‹ค.lvalue๋Š” ์„ธ๋กœ N, ๊ฐ€๋กœ M ํฌ๊ธฐ์˜ ์ง‘ํ„ฐ๋ฅผ ๊ณจ๋ž๋‹ค. ์ง‘ํ„ฐ ๋งจ ์™ผ์ชฝ ์œ„์˜ ์ขŒํ‘œ๋Š” (0, 0)์ด๋‹ค. ์šฐ๋ฆฌ์˜ ๋ชฉ์ ์€ ์ด ์ง‘ํ„ฐ ๋‚ด์˜ ๋•…์˜ ๋†’์ด๋ฅผ ์ผ์ •ํ•˜๊ฒŒ ๋ฐ”๊พธ๋Š” ๊ฒƒ์ด๋‹ค. ์šฐ๋ฆฌ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋‘ ์ข…๋ฅ˜์˜ ์ž‘์—…์„ ํ•  ์ˆ˜ ์žˆ๋‹ค.์ขŒํ‘œ (i, j)์˜ ๊ฐ€์žฅ ์œ„์— ์žˆ๋Š” ๋ธ”๋ก์„ ์ œ๊ฑฐํ•˜์—ฌ ์ธ๋ฒคํ† ๋ฆฌ์— ๋„ฃ๋Š”๋‹ค.์ธ๋ฒคํ† ๋ฆฌ์—์„œ ๋ธ”๋ก ํ•˜๋‚˜๋ฅผ ๊บผ๋‚ด์–ด ์ขŒํ‘œ (i, j)์˜ ๊ฐ€์žฅ ์œ„์— ์žˆ๋Š” ๋ธ”๋ก ์œ„์— ๋†“๋Š”๋‹ค.1๋ฒˆ ์ž‘์—…์€ 2์ดˆ๊ฐ€ ๊ฑธ๋ฆฌ๋ฉฐ.. 2024. 8. 14.
[Java] BOJ 11724 ์—ฐ๊ฒฐ ์š”์†Œ์˜ ๊ฐœ์ˆ˜ ๋ฌธ์ œ ๋ฌธ์ œ ๋งํฌ https://www.acmicpc.net/problem/11724๋ฐฉํ–ฅ ์—†๋Š” ๊ทธ๋ž˜ํ”„๊ฐ€ ์ฃผ์–ด์กŒ์„ ๋•Œ, ์—ฐ๊ฒฐ ์š”์†Œ (Connected Component)์˜ ๊ฐœ์ˆ˜๋ฅผ ๊ตฌํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์‹œ์˜ค.์ฒซ์งธ ์ค„์— ์ •์ ์˜ ๊ฐœ์ˆ˜ N๊ณผ ๊ฐ„์„ ์˜ ๊ฐœ์ˆ˜ M์ด ์ฃผ์–ด์ง„๋‹ค. (1 ≤ N ≤ 1,000, 0 ≤ M ≤ N×(N-1)/2) ๋‘˜์งธ ์ค„๋ถ€ํ„ฐ M๊ฐœ์˜ ์ค„์— ๊ฐ„์„ ์˜ ์–‘ ๋์  u์™€ v๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. (1 ≤ u, v ≤ N, u ≠ v) ๊ฐ™์€ ๊ฐ„์„ ์€ ํ•œ ๋ฒˆ๋งŒ ์ฃผ์–ด์ง„๋‹ค. ์ฒซ์งธ ์ค„์— ์—ฐ๊ฒฐ ์š”์†Œ์˜ ๊ฐœ์ˆ˜๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค. ์•„์ด๋””์–ด๋…ธ๋“œ๋ฅผ ์ž…๋ ฅ๋ฐ›์„๋•Œ๋งˆ๋‹ค ArrayList๋กœ ์„œ๋กœ ๋…ธ๋“œ๋ฅผ ์—ฐ๊ฒฐํ•œ๋‹ค.for๋ฌธ์„ ์‚ฌ์šฉํ•˜์—ฌ 1๋ถ€ํ„ฐ N๊นŒ์ง€์˜ ๋…ธ๋“œ๋ฅผ ๋Œ๋ฉด์„œ ๋ฐฉ๋ฌธํ•˜์ง€ ์•Š์€ ๋…ธ๋“œ๋ฉด ํ•ด๋‹น ๋…ธ๋“œ๋กœ BFS๋ฅผ ๋Œ๋ฆฐ๋‹ค.๊ทธ๋ฆฌ๊ณ  BFS๋ฅผ ์ด์šฉํ•˜์—ฌ ์ž…๋ ฅ๋“ค์–ด์˜จ ๋…ธ๋“œ๋ฅผ .. 2024. 8. 13.
[Java] BOJ 2805 ๋‚˜๋ฌด ์ž๋ฅด๊ธฐ ๋ฌธ์ œ ๋ฌธ์ œ ๋งํฌ https://www.acmicpc.net/problem/2805์ƒ๊ทผ์ด๋Š” ๋‚˜๋ฌด M๋ฏธํ„ฐ๊ฐ€ ํ•„์š”ํ•˜๋‹ค.์ƒ๊ทผ์ด๋Š” ์ƒˆ๋กœ ๊ตฌ์ž…ํ•œ ๋ชฉ์žฌ์ ˆ๋‹จ๊ธฐ๋ฅผ ์ด์šฉํ•ด์„œ ๋‚˜๋ฌด๋ฅผ ๊ตฌํ• ๊ฒƒ์ด๋‹ค.์ƒ๊ทผ์ด๋Š” ํ™˜๊ฒฝ์— ๋งค์šฐ ๊ด€์‹ฌ์ด ๋งŽ๊ธฐ ๋•Œ๋ฌธ์—, ๋‚˜๋ฌด๋ฅผ ํ•„์š”ํ•œ ๋งŒํผ๋งŒ ์ง‘์œผ๋กœ ๊ฐ€์ ธ๊ฐ€๋ ค๊ณ  ํ•œ๋‹ค.์ด๋•Œ, ์ ์–ด๋„ M๋ฏธํ„ฐ์˜ ๋‚˜๋ฌด๋ฅผ ์ง‘์— ๊ฐ€์ ธ๊ฐ€๊ธฐ ์œ„ํ•ด์„œ ์ ˆ๋‹จ๊ธฐ์— ์„ค์ •ํ•  ์ˆ˜ ์žˆ๋Š” ๋†’์ด์˜ ์ตœ๋Œ“๊ฐ’์„ ๊ตฌํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์‹œ์˜ค.๋ชฉ์žฌ์ ˆ๋‹จ๊ธฐ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋™์ž‘ํ•œ๋‹ค. ๋จผ์ €, ์ƒ๊ทผ์ด๋Š” ์ ˆ๋‹จ๊ธฐ์— ๋†’์ด H๋ฅผ ์ง€์ •ํ•ด์•ผ ํ•œ๋‹ค.๋†’์ด๋ฅผ ์ง€์ •ํ•˜๋ฉด ํ†ฑ๋‚ ์ด ๋•…์œผ๋กœ๋ถ€ํ„ฐ H๋ฏธํ„ฐ ์œ„๋กœ ์˜ฌ๋ผ๊ฐ„๋‹ค.๊ทธ ๋‹ค์Œ, ํ•œ ์ค„์— ์—ฐ์†ํ•ด์žˆ๋Š” ๋‚˜๋ฌด๋ฅผ ๋ชจ๋‘ ์ ˆ๋‹จํ•ด๋ฒ„๋ฆฐ๋‹ค.๋”ฐ๋ผ์„œ, ๋†’์ด๊ฐ€ H๋ณด๋‹ค ํฐ ๋‚˜๋ฌด๋Š” H ์œ„์˜ ๋ถ€๋ถ„์ด ์ž˜๋ฆด ๊ฒƒ์ด๊ณ , ๋‚ฎ์€ ๋‚˜๋ฌด๋Š” ์ž˜๋ฆฌ์ง€ ์•Š์„ ๊ฒƒ์ด๋‹ค.์˜ˆ๋ฅผ ๋“ค์–ด, ํ•œ ์ค„์— ์—ฐ์†ํ•ด์žˆ๋Š” ๋‚˜๋ฌด.. 2024. 8. 12.
[Java] BOJ 11279 ์ตœ๋Œ€ ํž™ ๋ฌธ์ œ ๋ฌธ์ œ ๋งํฌ https://www.acmicpc.net/problem/11279๋„๋ฆฌ ์ž˜ ์•Œ๋ ค์ง„ ์ž๋ฃŒ๊ตฌ์กฐ ์ค‘ ์ตœ๋Œ€ ํž™์ด ์žˆ๋‹ค. ์ตœ๋Œ€ ํž™์„ ์ด์šฉํ•˜์—ฌ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์—ฐ์‚ฐ์„ ์ง€์›ํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์‹œ์˜ค.๋ฐฐ์—ด์— ์ž์—ฐ์ˆ˜ x๋ฅผ ๋„ฃ๋Š”๋‹ค.๋ฐฐ์—ด์—์„œ ๊ฐ€์žฅ ํฐ ๊ฐ’์„ ์ถœ๋ ฅํ•˜๊ณ , ๊ทธ ๊ฐ’์„ ๋ฐฐ์—ด์—์„œ ์ œ๊ฑฐํ•œ๋‹ค.ํ”„๋กœ๊ทธ๋žจ์€ ์ฒ˜์Œ์— ๋น„์–ด์žˆ๋Š” ๋ฐฐ์—ด์—์„œ ์‹œ์ž‘ํ•˜๊ฒŒ ๋œ๋‹ค. ์ฒซ์งธ ์ค„์— ์—ฐ์‚ฐ์˜ ๊ฐœ์ˆ˜ N(1 ≤ N ≤ 100,000)์ด ์ฃผ์–ด์ง„๋‹ค. ๋‹ค์Œ N๊ฐœ์˜ ์ค„์—๋Š” ์—ฐ์‚ฐ์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ์ •์ˆ˜ x๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. ๋งŒ์•ฝ x๊ฐ€ ์ž์—ฐ์ˆ˜๋ผ๋ฉด ๋ฐฐ์—ด์— x๋ผ๋Š” ๊ฐ’์„ ๋„ฃ๋Š”(์ถ”๊ฐ€ํ•˜๋Š”) ์—ฐ์‚ฐ์ด๊ณ , x๊ฐ€ 0์ด๋ผ๋ฉด ๋ฐฐ์—ด์—์„œ ๊ฐ€์žฅ ํฐ ๊ฐ’์„ ์ถœ๋ ฅํ•˜๊ณ  ๊ทธ ๊ฐ’์„ ๋ฐฐ์—ด์—์„œ ์ œ๊ฑฐํ•˜๋Š” ๊ฒฝ์šฐ์ด๋‹ค. ์ž…๋ ฅ๋˜๋Š” ์ž์—ฐ์ˆ˜๋Š” 231๋ณด๋‹ค ์ž‘๋‹ค. ์ž…๋ ฅ์—์„œ 0์ด ์ฃผ์–ด์ง„ ํšŸ์ˆ˜๋งŒํผ ๋‹ต์„ ์ถœ๋ ฅํ•œ๋‹ค... 2024. 8. 11.
[Java] BOJ 2630 ์ƒ‰์ข…์ด ๋งŒ๋“ค๊ธฐ ๋ฌธ์ œ ๋ฌธ์ œ ๋งํฌ https://www.acmicpc.net/problem/2630์•„๋ž˜ ๊ณผ ๊ฐ™์ด ์—ฌ๋Ÿฌ๊ฐœ์˜ ์ •์‚ฌ๊ฐํ˜•์นธ๋“ค๋กœ ์ด๋ฃจ์–ด์ง„ ์ •์‚ฌ๊ฐํ˜• ๋ชจ์–‘์˜ ์ข…์ด๊ฐ€ ์ฃผ์–ด์ ธ ์žˆ๊ณ , ๊ฐ ์ •์‚ฌ๊ฐํ˜•๋“ค์€ ํ•˜์–€์ƒ‰์œผ๋กœ ์น ํ•ด์ ธ ์žˆ๊ฑฐ๋‚˜ ํŒŒ๋ž€์ƒ‰์œผ๋กœ ์น ํ•ด์ ธ ์žˆ๋‹ค. ์ฃผ์–ด์ง„ ์ข…์ด๋ฅผ ์ผ์ •ํ•œ ๊ทœ์น™์— ๋”ฐ๋ผ ์ž˜๋ผ์„œ ๋‹ค์–‘ํ•œ ํฌ๊ธฐ๋ฅผ ๊ฐ€์ง„ ์ •์‚ฌ๊ฐํ˜• ๋ชจ์–‘์˜ ํ•˜์–€์ƒ‰ ๋˜๋Š” ํŒŒ๋ž€์ƒ‰ ์ƒ‰์ข…์ด๋ฅผ ๋งŒ๋“ค๋ ค๊ณ  ํ•œ๋‹ค.์ „์ฒด ์ข…์ด์˜ ํฌ๊ธฐ๊ฐ€ N×N(N=2k, k๋Š” 1 ์ด์ƒ 7 ์ดํ•˜์˜ ์ž์—ฐ์ˆ˜) ์ด๋ผ๋ฉด ์ข…์ด๋ฅผ ์ž๋ฅด๋Š” ๊ทœ์น™์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.์œ„์™€ ๊ฐ™์€ ๊ทœ์น™์— ๋”ฐ๋ผ ์ž˜๋ž์„ ๋•Œ ์€ ์˜ ์ข…์ด๋ฅผ ์ฒ˜์Œ ๋‚˜๋ˆˆ ํ›„์˜ ์ƒํƒœ๋ฅผ, ๋Š” ๋‘ ๋ฒˆ์งธ ๋‚˜๋ˆˆ ํ›„์˜ ์ƒํƒœ๋ฅผ, ๋Š” ์ตœ์ข…์ ์œผ๋กœ ๋งŒ๋“ค์–ด์ง„ ๋‹ค์–‘ํ•œ ํฌ๊ธฐ์˜ 9์žฅ์˜ ํ•˜์–€์ƒ‰ ์ƒ‰์ข…์ด์™€ 7์žฅ์˜ ํŒŒ๋ž€์ƒ‰ ์ƒ‰์ข…์ด๋ฅผ ๋ณด์—ฌ์ฃผ๊ณ  ์žˆ๋‹ค.์ „์ฒด ์ข…์ด๊ฐ€ ๋ชจ๋‘ ๊ฐ™์€ ์ƒ‰์œผ๋กœ ์น ํ•ด์ ธ ์žˆ์ง€ ์•Š.. 2024. 8. 5.