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

๐Ÿ”Ž Algorithm/๐Ÿ’ป ๋ฌธ์ œ ํ’€์ด16

[๋ฐฑ์ค€] 2493. ํƒ‘ ๋ฌธ์ œ ํ’€์ด ์ฒ˜์Œ์—๋Š” ๋ฐฐ์—ด์˜ ๋์—์„œ๋ถ€ํ„ฐ ํƒ์ƒ‰์„ ์‹œ์ž‘ํ•ด์„œ ์ž์‹ ๋ณด๋‹ค ํฐ ๊ฐ’์„ ๋งŒ๋‚  ๋•Œ๊นŒ์ง€์˜ ๋ชจ๋“  ์š”์†Œ๋“ค์„ ๊ฐ™์ด ์ดˆ๊ธฐํ™”ํ•˜๋Š” ๋ฐฉ์‹์„ ์ƒ๊ฐํ–ˆ๋‹ค. ํ•˜์ง€๋งŒ ์ด ๊ฒฝ์šฐ์—๋Š” ์•„๋ž˜ ๋ฐฉํ–ฅ์˜ ํ™”์‚ดํ‘œ ๋ชจ์–‘(ex. 5 2 1 3 4) ๊ฒฝ์šฐ๋ฅผ ์ปค๋ฒ„ํ•˜์ง€ ๋ชปํ•ด์„œ ๋‹ค๋ฅธ ๋ฐฉ๋ฒ•์„ ์ƒ๊ฐํ•ด๋ดค๋‹ค. ์ตœ์ข…์ ์œผ๋กœ๋Š” ์Šคํƒ ๋‘๊ฐœ๋ฅผ ์‚ฌ์šฉํ•ด์„œ ํ•˜๋‚˜์˜ ์Šคํƒ(A)์€ ์ž…๋ ฅ ์ˆœ์„œ๋Œ€๋กœ ๋“ค์–ด๊ฐ€ ์žˆ๊ณ  ๋‚˜๋จธ์ง€(B)๋Š” ๊บผ๋‚ธ ๊ฐ’์„ ์ €์žฅํ–ˆ๋‹ค. ๊บผ๋‚ธ ๊ฐ’์„ B ์Šคํƒ์— ๋„ฃ๊ธฐ ์ „์— B์Šคํƒ์˜ top์ด ๋” ์ž‘์€ ๊ฒฝ์šฐ์—๋Š” ๊บผ๋‚ธ ๊ฐ’์˜ ์ธ๋ฑ์Šค๊ฐ€ top์˜ ๊ฒฐ๊ณผ๊ฐ€ ๋œ๋‹ค. ์ธ๋ฑ์Šค๋ฅผ ์ฐพ๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด์„œ๋Š” Map์„ ํ†ตํ•ด์„œ ์ดˆ๊ธฐ ์ž…๋ ฅ์‹œ ํ•ด๋‹น ๊ฐ’์„ key๋กœ ์ธ๋ฑ์Šค๋ฅผ value๋กœ ์ €์žฅํ•ด์„œ O(1)๋กœ ์ฐพ์„ ์ˆ˜ ์žˆ๋„๋ก ํ–ˆ๋‹ค. Map์„ ํ†ตํ•œ ๊ตฌํ˜„ import java.io.BufferedReader; import .. 2021. 2. 4.
[๋ฐฑ์ค€] 1436. ์˜ํ™”๊ฐ๋… ์Š˜ ๋ฌธ์ œ ํ’€์ด ์ฐพ์€ ๊ทœ์น™์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค. prefix๋ฅผ 0๋ถ€ํ„ฐ ์‹œ์ž‘ํ•ด์„œ ์œ ์ง€ํ•˜๊ณ  1์‚ฌ์ดํด์ด ๋๋‚˜๋ฉด prefix๋ฅผ ์ฆ๊ฐ€์‹œํ‚จ๋‹ค. ์ฒ˜์Œ 0~5๊นŒ์ง€๋Š” prefix์™€ 666์‚ฌ์ด์— ๋ถ™ํžŒ๋‹ค. ex) 1666, 2666, 11666 prefix 6์ด ๋‚˜์˜ค๋ฉด ๋’ค์—์„œ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋Š” ์กฐํ•ฉ์˜ ๊ฐœ์ˆ˜๊ฐ€ ๋Š˜์–ด๋‚จ ex) prefix 1 => ๋’ค์— 10๊ฐœ / prefix 16 ⇒ ๋’ค์— 100๊ฐœ / prefix 166 ⇒ ๋’ค์— ์กฐํ•ฉ 1000๊ฐœ ๊ฒฐ๋ก ์€ 1์‚ฌ์ดํด์€ 6 + (10^prefix์˜ 6์˜ ๊ฐœ์ˆ˜) + 3 ์˜ ๊ทœ์น™์„ ๊ฐ€์ง€๊ฒŒ ๋œ๋‹ค. ๋‹ค ํ‘ผ๋’ค์— ์ƒ๊ฐํ•ด๋ณด๋‹ˆ Input์ด ์ž‘์•„์„œ 1๋ถ€ํ„ฐ ๋ชจ๋“  ์ˆ˜๋ฅผ ๋Œ๋ฉฐ 666์ด ํฌํ•จ๋  ๊ฒฝ์šฐ ์นด์šดํŠธ ํ•˜๋Š” ๋ฐฉ๋ฒ•๋„ ๊ฐ€๋Šฅํ•  ๊ฒƒ ๊ฐ™๋‹ค. import java.util.Scanner; public class Solution .. 2021. 2. 3.
[๋ฐฑ์ค€] 1018. ์ฒด์ŠคํŒ ๋‹ค์‹œ ์น ํ•˜๊ธฐ ๋ฌธ์ œ ํ’€์ด ์ฒ˜์Œ์—๋Š” ์ž…๋ ฅ์˜ ํฌ๊ธฐ๋ฅผ ์ฃผ์˜๊นŠ๊ฒŒ ๋ณด์ง€ ์•Š์•„์„œ ์™„์ „ํƒ์ƒ‰์˜ ๋ฐฉ์‹์„ ์ƒ๊ฐํ•˜์ง€ ๋ชปํ–ˆ๋‹ค. ๋‹ค๋ฅธ ๋ฐฉ๋ฒ•์„ ์•„๋ฌด๋ฆฌ ์ƒ๊ฐํ•ด๋ด๋„ ๋– ์˜ค๋ฅด์ง€ ์•Š์•„์„œ ์ฒœ์ฒœํžˆ ๋‹ค์‹œ ์ƒ๊ฐํ•ด๋ดค๋Š”๋ฐ N๊ณผ M์˜ ๋ฒ”์œ„๊ฐ€ 50์ด๊ณ  ๊ฐ€๋Šฅํ•œ ๋ชจ๋“  8x8 ์ •์‚ฌ๊ฐํ˜•์„ ๊ฒ€์‚ฌํ•˜๋”๋ผ๋„ ์ถฉ๋ถ„ํžˆ ์ปค๋ฒ„ ๊ฐ€๋Šฅํ•˜๋‹ค๊ณ  ์ƒ๊ฐํ•ด์„œ ์™„์ „ํƒ์ƒ‰์œผ๋กœ ํ’€์—ˆ๋‹ค. ์™„์ „ํƒ์ƒ‰์„ ํ•  ๋•Œ, ์ฒ˜์Œ ์‹œ์ž‘์ด W์ธ ๊ฒฝ์šฐ์™€ B์ธ ๊ฒฝ์šฐ ๋ชจ๋‘ ์ˆ˜ํ–‰ํ•˜๋„๋ก ํ–ˆ๋‹ค. ์กฐ๊ธˆ ํ—ค๋งธ๋˜ ๋ถ€๋ถ„์€ prev๋ฅผ ์œ ์ง€ํ•˜๋ฉด์„œ prev์™€ ํ˜„์žฌ ๊ฐ’์ด ๊ฐ™์œผ๋ฉด ์นด์šดํŠธ๋ฅผ ํ•ด์ฃผ๋Š” ๋ฐฉ์‹์œผ๋กœ ๊ตฌํ˜„ํ–ˆ๋Š”๋ฐ ์ค„์ด ๋ฐ”๋€” ๋•Œ๋งˆ๋‹ค prev์˜ ๊ฐ’์ด ํ•œ ๋ฒˆ ๋” ๋ณ€๊ฒฝ๋˜์–ด์•ผ ํ•˜๋Š” ๋ถ€๋ถ„์ด์—ˆ๋‹ค. ๊ทธ๋ž˜์„œ ์ฒ˜์Œ ํ–‰์„ ์ œ์™ธํ•œ ๋ชจ๋“  ํ–‰์˜ ์ฒซ ์—ด์€ prev๋ฅผ ํ•œ ๋ฒˆ ๋” ๋ณ€๊ฒฝํ•ด์ฃผ๋Š” ๋ฐฉ์‹์œผ๋กœ ๊ตฌํ˜„ํ•˜์˜€๋‹ค. ๊ตฌํ˜„ ์ฝ”๋“œ๋Š” ์•„๋ž˜์™€ ๊ฐ™๋‹ค. import java.io.BufferedR.. 2021. 2. 2.
[๋ฐฑ์ค€] 2146. ๋‹ค๋ฆฌ ๋งŒ๋“ค๊ธฐ ๋ฌธ์ œ ํ’€์ด ๋จผ์ € ๊ฐ ์„ฌ์„ ๊ตฌ๋ถ„ํ•˜๊ธฐ ์œ„ํ•ด 1์ด ์•„๋‹Œ ์ˆ˜(2,3,4...)๋กœ ์ดˆ๊ธฐํ™” ์‹œ์ผœ์ฃผ์—ˆ๋‹ค. ๊ทธ๋Ÿฐ ๋‹ค์Œ ๊ฐ ์„ฌ๋งˆ๋‹ค ํƒ์ƒ‰์„ ์ง„ํ–‰ํ•จ์— ์žˆ์–ด ์‹œ์ž‘ ์ง‘ํ•ฉ์„ ์„ฌ์˜ ๊ฒฝ๊ณ„ (์ฃผ์œ„์— 0์ด ์กด์žฌํ•˜๋Š” ์นธ)๋ฅผ ์žก๊ณ  ๋‹ค๋ฅธ ์„ฌ์„ ๋งŒ๋‚˜๊ธฐ ์ „๊นŒ์ง€ bfs๋ฅผ ์ˆ˜ํ–‰ํ•˜๋ฉด์„œ ์ตœ์†Œ๊ฑฐ๋ฆฌ๋ฅผ ๊ตฌํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ์ง„ํ–‰ํ–ˆ๋‹ค. ์—ฌ๊ธฐ์„œ distance๊ฐ€ ์ฆ๊ฐ€ํ•˜๋Š” ์‹œ์ ์— ๋Œ€ํ•ด์„œ ๊ณ ๋ฏผ์„ ๋งŽ์ด ํ–ˆ๋Š”๋ฐ ์•„๋ž˜ ์ฝ”๋“œ์ฒ˜๋Ÿผ BFS์˜ Level์„ ํŒ๋‹จํ•˜๊ธฐ ์œ„ํ•ด ์ดˆ๊ธฐ bounday์˜ ์‚ฌ์ด์ฆˆ๋ฅผ ๊ตฌํ•˜๊ณ  ์ด์— ๋Œ€ํ•ด์„œ ๋ฐ˜๋ณต๋ฌธ์„ ๋„๋Š” ๋ฐฉ์‹์œผ๋กœ Level์„ ํŒ๋‹จํ–ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ดˆ๊ธฐ ํ’€์ด๋Š” 50%๊ฐ€ ๋„˜์–ด๊ฐˆ ๋•Œ ๋ฉ”๋ชจ๋ฆฌ ์ดˆ๊ณผ๊ฐ€ ๋ฐœ์ƒํ–ˆ๋Š”๋ฐ, BFS๋ฅผ ์ˆ˜ํ–‰ํ•  ๋•Œ visited๋ฅผ ์ฒดํฌํ•˜์ง€ ์•Š์•„์„œ ๋งŽ์€ ์ค‘๋ณต์ด ๋ฐœ์ƒํ–ˆ๋˜ ๊ฒƒ์ด ๋ฌธ์ œ์˜€๋‹ค. ๊ทธ๋ฆฌ๊ณ  visited๋ฅผ ๊ฐฑ์‹ ํ•˜๋Š” ์œ„์น˜๊ฐ€ current์˜ ์‹œ์ ์—์„œ .. 2021. 2. 2.