Algorithm/BOJ

๊ฒ€์ƒ‰๊ฒฐ๊ณผ 15 ๊ฐœ
[๋ฐฑ์ค€] 14503. ๋กœ๋ด‡์ฒญ์†Œ๊ธฐ - Java

1. ๋ฌธ์ œ์ดํ•ด ์ œ์ผ ๋จผ์ € ์• ๋งคํ–ˆ๋˜ ๋ถ€๋ถ„์€ ๋กœ๋ด‡์ฒญ์†Œ๊ธฐ์˜ ์œ„์น˜ ์˜€๋‹ค. ์ง€๋„์˜ ๋ถ์ชฝ์—์„œ๋ถ€ํ„ฐ r๋ฒˆ์งธ, ์„œ์ชฝ์—์„œ๋ถ€ํ„ฐ c๋ฒˆ์งธ๋กœ ์œ„์น˜ํ•œ ์นธ์ด ๋กœ๋ด‡์ฒญ์†Œ๊ธฐ์˜ ์œ„์น˜๋กœ ์ฃผ์–ด์กŒ๋Š”๋ฐ, ๋ฒฝ์—๋Š” ๋กœ๋ด‡์ฒญ์†Œ๊ธฐ๊ฐ€ ์กด์žฌํ•  ์ˆ˜ ์—†์œผ๋‹ˆ ์ฒซ๋ฒˆ์งธ ํ…Œ์ŠคํŠธ์ผ€์ด์Šค๋ฅผ ๋ณด๊ณ  r์˜ ๋ฒ”์œ„๊ฐ€ [0:N), c์˜ ๋ฒ”์œ„๊ฐ€ [0:M)๋ผ๋Š” ๊ฒƒ์„ ์ง์ž‘ํ•  ์ˆ˜ ์žˆ์—ˆ๋‹ค. ๊ทธ ๋‹ค์Œ์€ 2-b์˜ ์„ค๋ช…์„ ์ œ๋Œ€๋กœ ์ดํ•ดํ•˜์ง€ ๋ชปํ–ˆ๋‹ค. ์งˆ๋ฌธ๊ฒ€์ƒ‰ ๊ฒŒ์‹œํŒ์„ ํ†ตํ•ด "1๋ฒˆ์œผ๋กœ ๋Œ์•„๊ฐ€๊ฑฐ๋‚˜ ํ›„์ง„"ํ•˜์ง€ ์•Š๊ณ  2a๋ฒˆ ๋‹จ๊ณ„๊ฐ€ ์—ฐ์†์œผ๋กœ 4๋ฒˆ ์‹คํ–‰๋˜๋Š” ๊ฒƒ์„ ์•Œ ์ˆ˜ ์žˆ์—ˆ๋‹ค. ๋˜ํ•œ ์ด ์กฐ๊ฑด์€ ํ˜„์žฌ ์œ„์น˜์—์„œ ๋™์„œ๋‚จ๋ถ ๋ชจ๋‘ (๋ฒฝ or ์ฒญ์†Œํ•  ๊ณต๊ฐ„์ด ์—†์Œ) ๊ฒฝ์šฐ๋ฅผ ๋‚˜ํƒ€๋‚ธ๋‹ค. ์—ฌ๊ธฐ๊นŒ์ง€ ์ดํ•ดํ•˜๋Š”๋ฐ ์ง„์งœ ์˜ค๋ž˜ ๊ฑธ๋ ธ๋‹ค....ใ…Ž 2. ๋ฌธ์ œํ’€์ด static class Position { int r, c, d; public Po..

[๋ฐฑ์ค€] 14003. ๊ฐ€์žฅ ๊ธด ์ฆ๊ฐ€ํ•˜๋Š” ๋ถ€๋ถ„ ์ˆ˜์—ด 5 - Java

์ด ๋ฌธ์ œ๋Š” ๊ฐ€์žฅ ๊ธด ์ฆ๊ฐ€ํ•˜๋Š” ๋ถ€๋ถ„ ์ˆ˜์—ด4(https://www.acmicpc.net/problem/14002)์—์„œ ๋ฒ”์œ„๋งŒ ๋‹ฌ๋ผ์ง„ ๋ฌธ์ œ์ด๋‹ค. ์ผ๋‹จ ์ž…๋ ฅ๊ฐ’์ด 1,000,000์ด๋ฏ€๋กœ DP๋กœ ํ’€๊ฒŒ ๋  ๊ฒฝ์šฐ 1,000,000์˜ ์ œ๊ณฑ์„ ํ•˜๋ฉด... ๋ฌด์กฐ๊ฑด ์‹œ๊ฐ„์ดˆ๊ณผ๊ฐ€ ๋‚  ๊ฒƒ์ด๋‹ค. ์ด๋ถ„ํƒ์ƒ‰์„ ์ด์šฉํ•˜์—ฌ ์‹œ๊ฐ„๋ณต์žก๋„๋ฅผ O(N logN)๋กœ ๋‚ฎ์ถฐ์•ผ ํ•œ๋‹ค. 14002๋ฒˆ ๋ฌธ์ œ๋ฅผ ํ’€ ๋•Œ ์ด๋ถ„ ํƒ์ƒ‰์„ ์ด์šฉํ•ด์„œ ๊ตฌํ•ด๋ดค๋Š”๋ฐ ์ž˜ ์•ˆ๊ตฌํ•ด์ ธ์„œ DP๋กœ ๋ฐ”๊ฟจ๋Š”๋ฐ... ์ด ๋ฌธ์ œ๋ฅผ ์•ฝ 2-3์‹œ๊ฐ„ ๋™์•ˆ ๋™๋™๋Œ”๋‹ค...ใ… ใ…  ์ธ๋ฑ์Šค๋ฅผ ์ด์šฉํ•ด์•ผ ๋  ๊ฒƒ ๊ฐ™๋‹ค๋Š” ๊ฒƒ์€ ์•Œ์•„์ฑ˜๋Š”๋ฐ ์ œ์ถœํ•˜๋ฉด ๋ฐ˜๋ก€๊ฐ€ ๊ณ„์†๊ณ„์† ๋‚˜์™”๋‹ค...ํ•˜ํ•˜ ๊ฒฐ๊ตญ G๋‹˜์˜ ํž˜์„ ๋นŒ๋ ธ๋‹ค... https://dragon-h.tistory.com/35 [๋ฐฑ์ค€ 14003: JAVA] ๊ฐ€์žฅ ๊ธด ์ฆ๊ฐ€ํ•˜๋Š” ๋ถ€๋ถ„ ์ˆ˜์—ด ..

[๋ฐฑ์ค€] 11053. ๊ฐ€์žฅ ๊ธด ์ฆ๊ฐ€ํ•˜๋Š” ๋ถ€๋ถ„ ์ˆ˜์—ด 4 - Java

๊ฐ€์žฅ ๊ธด ์ฆ๊ฐ€ํ•˜๋Š” ๋ถ€๋ถ„ ์ˆ˜์—ด์€ 5๊นŒ์ง€ ์žˆ๋‹ค. 3๊นŒ์ง€์™€์˜ ๋‹ค๋ฅธ ์ ์€ ๋ถ€๋ถ„ ์ˆ˜์—ด์„ ์ถœ๋ ฅํ•˜๋Š” ๊ฒƒ. LIS๋ฅผ ๊ตฌํ•˜๋Š” ๋ฐฉ๋ฒ•์€ 3๊ฐ€์ง€๊ฐ€ ์žˆ๋‹ค. 1. ์™„์ „ํƒ์ƒ‰ - O(N^2) 2. DP - O(N^2) 3. ์ด์ง„ํƒ์ƒ‰ ํ™œ์šฉ - O(N logN) ์™„์ „ํƒ์ƒ‰๊ณผ DP๋Š” ์‹œ๊ฐ„๋ณต์žก๋„๊ฐ€ ๊ฐ™์ง€๋งŒ DP๋กœ ํ‘ธ๋Š” ๋ฐฉ๋ฒ•์ด ํ›จ์”ฌ ๊ฐ„๊ฒฐํ•˜๋‹ค. ๊ฐ€์žฅ ๊ธด ์ฆ๊ฐ€ํ•˜๋Š” ๋ถ€๋ถ„ ์ˆ˜์—ด3๊นŒ์ง€๋Š” ์ด์ง„ํƒ์ƒ‰์„ ํ™œ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์œผ๋กœ ํ’€์—ˆ๋‹ค. ํ•˜์ง€๋งŒ ์ด ๋ฌธ์ œ๋Š” ์ด์ง„ํƒ์ƒ‰์œผ๋กœ ํ’€ ์ˆ˜ ์—†๋‹ค. ์ด์ง„ํƒ์ƒ‰์„ ํ™œ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์€ LIS์˜ ๊ธธ์ด๋Š” ๊ตฌํ•  ์ˆ˜ ์žˆ์ง€๋งŒ, ๋ถ€๋ถ„ ์ˆ˜์—ด์˜ ์›์†Œ๋ฅผ ๊ตฌํ•  ์ˆœ ์—†๊ธฐ ๋•Œ๋ฌธ์—... (๊ตฌํ•  ์ˆ˜ ์žˆ์—ˆ๋‹ค...! 2022.04.06 - [์•Œ๊ณ ๋ฆฌ์ฆ˜/BOJ] - [๋ฐฑ์ค€] 14003. ๊ฐ€์žฅ ๊ธด ์ฆ๊ฐ€ํ•˜๋Š” ๋ถ€๋ถ„ ์ˆ˜์—ด5 - Java ์ด ๊ธ€์„ ์ฐธ๊ณ ํ•˜์‹œ๊ธธ...) ๋”ฐ๋ผ์„œ ์ด ๋ฌธ์ œ๋Š” D..

[๋ฐฑ์ค€] 15961. ํšŒ์ „์ดˆ๋ฐฅ - Java

๋‹น์—ฐํžˆ ์‹œ๊ฐ„์ดˆ๊ณผ๊ฐ€ ๋‚˜์™”๋‹ค^^ N์ด ์ตœ๋Œ€ 3,000,000์ด๊ณ  k์€ ์ตœ๋Œ€ 3000์ด๋ฏ€๋กœ ์™„์ „ํƒ์ƒ‰์„ ํ•˜๋ฉด 3,000,000 * 3,000๋ฒˆ ๋‹ค๋ฅธ ๋ฐฉ๋ฒ•์„ ์ฐพ์•„์•ผ ํ•œ๋‹ค. 1์‹œ๊ฐ„๋™์•ˆ ๊ณ ๋ฏผํ•˜๋‹ค๊ฐ€ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ถ„๋ฅ˜๋ฅผ ๋ดค๋‹ค... ํˆฌํฌ์ธํ„ฐ๋Š” ๋Œ€์• ์• ์ถฉ ์•Œ์ง€๋งŒ ์Šฌ๋ผ์ด๋”ฉ๋„์–ด๋Š” ์ฒ˜์Œ ๋“ค์–ด๋ด์„œ ๊ตฌ๊ธ€์„ ์ฐพ์•„๋ดค๋‹ค. k = 4 ์ด๋ฏ€๋กœ 0๋ฒˆ์งธ๋ถ€ํ„ฐ 3๋ฒˆ์งธ๊นŒ์ง€ ์ดˆ๋ฐฅ์˜ ์ข…๋ฅ˜๋ฅผ ๊ด€๋ฆฌํ•œ๋‹ค. ๊ทธ๋ฆฌ๊ณ  start๋Š” 0, end๋Š” 3์„ ๊ฐ€๋ฆฌํ‚จ๋‹ค. ๋‹ค์Œ ๋‹จ๊ณ„๋Š” 0๋ฒˆ์งธ ์ดˆ๋ฐฅ์„ ๊ด€๋ฆฌํ•˜๋Š” ๋ถ€๋ถ„์—์„œ ์ œ๊ฑฐํ•˜๊ณ  start ๊ฐ’์„ 1 ์ฆ๊ฐ€์‹œ์ผœ์ฃผ๊ณ , end ๊ฐ’์„ 1 ์ฆ๊ฐ€์‹œ์ผœ end๋ฒˆ์งธ ์ดˆ๋ฐฅ์„ ๊ด€๋ฆฌํ•˜๋Š” ๋ถ€๋ถ„์— ์ถ”๊ฐ€ํ•œ๋‹ค. ๊ทธ๋Ÿฌ๋ฉด 7-9-7-30 ์—์„œ 9-7-30-2 ๋‹ค์Œ์œผ๋กœ ๋„˜์–ด๊ฐˆ ๋•Œ ์–‘ ๋์— ์žˆ๋Š” ์ดˆ๋ฐฅ๋“ค๋งŒ..

[๋ฐฑ์ค€] 2636. ์น˜์ฆˆ - Java

์ ‘๊ทผ๋ฐฉ๋ฒ•์„ ์•„์˜ˆ ๋ชป ์ฐพ๊ฒ ๋˜ ๋ฌธ์ œ...! ๊ฑฐ์˜ 1์‹œ๊ฐ„ 30๋ถ„๋™์•ˆ ๋ฉ ๋•Œ๋ฆฌ๊ณ  ์žˆ์—ˆ๋‹ค...ใ…‹ใ…‹ ์›๋ž˜ ์น˜์ฆˆ ๋ชจ์–‘์—์„œ (0, 7)์˜ c๋ฅผ ๊ธฐ์ค€์œผ๋กœ ํŒ”๋ฐฉ ํƒ์ƒ‰์„ ํ†ตํ•ด c๊ฐ€ ๋˜๋Š” ์ขŒํ‘œ๋ฅผ ๋ชจ๋‘ ์ฐพ์•„ bfs๋ฅผ ๋Œ๋ฆด ์ƒ๊ฐ์ด์—ˆ๋Š”๋ฐ... ๋„์ €ํžˆ c๊ฐ€ ๋˜๋Š” ์ขŒํ‘œ๋ฅผ ๊ตฌํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋ชป์ฐพ์•˜๋‹ค... ์•Œ๊ณ  ๋ณด๋‹ˆ ์น˜์ฆˆ๋ฅผ ํƒ์ƒ‰ํ•˜๋Š” ๊ฒŒ ์•„๋‹Œ ๊ณต๊ธฐ๋ฅผ ํƒ์ƒ‰ํ•˜๋Š” ๋ฐฉ๋ฒ•์œผ๋กœ ์ ‘๊ทผํ–ˆ์–ด์•ผ ํ–ˆ๋‹ค. (0,0)์„ ๊ธฐ์ค€์œผ๋กœ ๋ชจ๋“  ๊ณต๊ธฐ๋ฅผ ํƒ์ƒ‰ํ•ด ๋‚˜๊ฐ€๋ฉด์„œ ์ฃผ๋ณ€์— ์น˜์ฆˆ๊ฐ€ ์žˆ์œผ๋ฉด ๋…น์ด๋Š” ๋ฐฉ์‹... ๊ทธ๋Ÿฌ๋ฉด ์น˜์ฆˆ ๋‚ด๋ถ€์˜ ๊ตฌ๋ฉ๋„ ๋”ฐ๋กœ ์ƒ๊ฐ ์•ˆ ํ•ด๋„ ๋˜๊ณ ...!! ์„ค๋ช… ๋“ฃ์ž๋งˆ์ž ์œ ๋ ˆ์นด ๊ทธ ์ž์ฒด ๊ทธ๋ž˜ํ”„ ํƒ์ƒ‰ ๊พธ์ค€ํžˆ ๊ณต๋ถ€ํ•ด์•ผ์ง€...ํ—ˆํ—ˆ ์ฝ”๋“œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค. import java.io.BufferedReader; import java.io.IOException; import ja..

[๋ฐฑ์ค€] 1092. ๋ฐฐ - Java

๋ถ€๋“ค๋ถ€๋“ค....์‹œ๊ฐ„์ดˆ๊ณผ๋กœ 6๋ฒˆ ์‹คํŒจํ•˜๊ณ  ๊ฒจ์šฐ ๋งž์ถ˜ ๋ฌธ์ œ... ๋ฌธ์ œ๋งŒ ์ฝ๊ณ ๋Š” ์‰ฌ์šด ํŽธ์ธ ์ค„ ์•Œ์•˜๋Š”๋ฐ... ์šฐ์„  ํฌ๋ ˆ์ธ์˜ ๋ฌด๊ฒŒ ์ œํ•œ๊ณผ, ๋ฐ•์Šค๋“ค์˜ ๋ฌด๊ฒŒ๋ฅผ ๋ฆฌ์ŠคํŠธ์— ์ €์žฅ ํ›„ ๋‚ด๋ฆผ์ฐจ์ˆœ์œผ๋กœ ์ •๋ ฌํ•œ ๋‹ค์Œ ์ œ์ผ ๋ฌด๊ฑฐ์šด ๋ฌด๊ฒŒ๋ฅผ ๋“ค ์ˆ˜ ์žˆ๋Š” ํฌ๋ ˆ์ธ์ด ๊ฐ€์žฅ ๋ฌด๊ฑฐ์šด ๋ฐ•์Šค๋ฅผ ๋ชป ๋“ค ๊ฒฝ์šฐ์—๋Š” -1์ถœ๋ ฅ ํ›„ ํ”„๋กœ๊ทธ๋žจ ์ข…๋ฃŒ. ํฌ๋ ˆ์ธ์ด j๋ฒˆ์งธ ๋ฐ•์Šค๋ฅผ ๋“ค ์ˆ˜ ์žˆ์œผ๋ฉด ๋ฆฌ์ŠคํŠธ์—์„œ ์‚ญ์ œ ํฌ๋ ˆ์ธ์ด j๋ฒˆ์งธ ๋ฐ•์Šค๋ฅผ ๋“ค ์ˆ˜ ์—†์œผ๋ฉด j++ ์ฒ˜์Œ์—” ํฌ๋ ˆ์ธ ๋ฆฌ์ŠคํŠธ๋Š” ์กฐํšŒ๋งŒ ์ด๋ฃจ์–ด์ง€๊ธฐ ๋•Œ๋ฌธ์— ๋ฐฐ์—ด์— ์ €์žฅ์„ ํ•˜์˜€๊ณ , ๋ฐ•์Šค ๋ฆฌ์ŠคํŠธ๋Š” ์‚ญ์ œ๊ฐ€ ๋นˆ๋ฒˆํ•˜๊ฒŒ ์ง„ํ–‰๋œ๋‹ค๊ณ  ์ƒ๊ฐํ•˜์—ฌ LinkedList๋กœ ์ €์žฅํ•˜์˜€๋‹ค. → BufferedReader + LinkedList ์กฐํ•ฉ → ์‹คํŒจ!!! (์•„๋ฌด๋ž˜๋„ while - for - for ๋กœ ์‹œ๊ฐ„์ดˆ๊ณผ๊ฐ€ ๋‹น์—ฐํ•œ...) ๊ณ„์† ํ‹€๋ฆฌ๋‹ค๊ฐ€ ..