๐Ÿ“ ์•Œ๊ณ ๋ฆฌ์ฆ˜

๋ฌธ์ œ https://leetcode.com/problems/asteroid-collision/ ์ฃผ์–ด์ง„ `asteroids` ๋ฐฐ์—ด์€ ์—ฐ์†ํ•œ ์†Œํ–‰์„ฑ(asteroid)์„ ๋‚˜ํƒ€๋‚ด๋Š” ์ •์ˆ˜๋กœ ์ด๋ฃจ์–ด์ ธ์žˆ๋‹ค. ๊ฐ ์†Œํ–‰์„ฑ์˜ ์ ˆ๋Œ€๊ฐ’์€ ์ด๊ฒƒ์˜ ์‚ฌ์ด์ฆˆ๋ฅผ ๋‚˜ํƒ€๋‚ด๊ณ , ๋ถ€ํ˜ธ๋Š” ๋ฐฉํ–ฅ์„ ๋‚˜ํƒ€๋‚ธ๋‹ค(+๋Š” ์˜ค๋ฅธ์ชฝ, -๋Š” ์™ผ์ชฝ). ์†Œํ–‰์„ฑ๋“ค์€ ๊ฐ™์€ ์†๋„๋กœ ์›€์ง์ธ๋‹ค. ๋ชจ๋“  ์ถฉ๋Œ์ด ๋๋‚œ ํ›„์˜ ์†Œํ–‰์„ฑ์˜ ์ƒํƒœ๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋ผ. ๋งŒ์•ฝ ๋‘ ์†Œํ–‰์„ฑ์ด ๋งŒ๋‚œ๋‹ค๋ฉด, ๋” ์ž‘์€ ๊ฒƒ์ด ํญ๋ฐœํ•œ๋‹ค. ๋งŒ์•ฝ ๋‘ ์†Œํ–‰์„ฑ์ด ๊ฐ™์€ ํฌ๊ธฐ๋ผ๋ฉด, ๋ชจ๋‘ ํญ๋ฐœํ•œ๋‹ค. ๊ฐ™์€ ๋ฐฉํ–ฅ์œผ๋กœ ์›€์ง์ด๋Š” ๋‘ ์†Œํ–‰์„ฑ์€ ์ ˆ๋Œ€ ๋งŒ๋‚˜์ง€ ์•Š๋Š”๋‹ค. ํ’€์ด class Solution { public int[] asteroidCollision(int[] asteroids) { ArrayDeque st = new ArrayD..
๋ฌธ์ œ https://leetcode.com/problems/add-two-numbers-ii/description/ ์ฃผ์–ด์ง„ ๋‘๊ฐœ์˜ ๋น„์–ด์žˆ์ง€ ์•Š์€ linked list๋Š” ๊ฐ๊ฐ ์Œ์ˆ˜๊ฐ€ ์•„๋‹Œ ์ •์ˆ˜๋กœ ์ด๋ฃจ์–ด์ ธ์žˆ๋‹ค. ๊ฐ€์žฅ ์ค‘์š”ํ•œ ์ˆซ์ž๊ฐ€ ์ฒซ๋ฒˆ์งธ๋กœ ์˜ค๋ฉฐ, ๊ทธ๋“ค์˜ ๋…ธ๋“œ ๊ฐ๊ฐ์€ ํ•œ์ž๋ฆฌ ์ˆ˜๋ฅผ ํฌํ•จํ•œ๋‹ค. ๋‘ ์ˆซ์ž๋ฅผ ๋”ํ•œ ํ•ฉ์„ linked list ํ˜•ํƒœ๋กœ ๋ฐ˜ํ™˜ํ•˜๋ผ. ๋‘ ์ˆซ์ž๋Š” 0์ผ ๊ฒฝ์šฐ๋ฅผ ์ œ์™ธํ•˜๊ณ , ์•ž์ž๋ฆฌ๊ฐ€ 0์œผ๋กœ ๋‚˜ํƒ€๋‚˜์ง€ ์•Š๋Š”๋‹ค. ํ’€์ด Stack์„ ์‚ฌ์šฉํ•œ ํ’€์ด public static ListNode addTwoNumbers(ListNode l1, ListNode l2) { ArrayDeque st1 = new ArrayDeque(); ArrayDeque st2 = new ArrayDeque(); while (l1 != n..
๋ฌธ์ œ https://leetcode.com/problems/find-eventual-safe-states/description/ ๊ฐ ๋…ธ๋“œ์˜ ๋ผ๋ฒจ์ด 0๋ถ€ํ„ฐ n-1๊นŒ์ง€ ๋ถ™์–ด์žˆ๋Š” n๊ฐœ์˜ ๋…ธ๋“œ๋กœ ์ด๋ฃจ์–ด์ง„ ๋ฐฉํ–ฅ ๊ทธ๋ž˜ํ”„๊ฐ€ ์žˆ๋‹ค. ๊ทธ๋ž˜ํ”„๋Š” 0-indexed ์ธ ์ด์ฐจ์› ์ •์ˆ˜ ๋ฐฐ์—ด `graph`๋กœ ํ‘œํ˜„๋˜๊ณ , graph[i]๋Š” ๋…ธ๋“œ i์™€ ์ธ์ ‘ํ•œ ์ •์ˆ˜ ๋ฐฐ์—ด์ด๋‹ค. ์ฆ‰, ๋…ธ๋“œ i๋กœ๋ถ€ํ„ฐ grape[i]์— ์žˆ๋Š” ๋…ธ๋“œ๋“ค ๊ฐ„์—๋Š” ๊ฐ„์„ ์ด ์กด์žฌํ•œ๋‹ค. ๋งŒ์•ฝ ํ•œ ๋…ธ๋“œ์—์„œ ๋‚˜๊ฐ€๋Š” ๊ฐ„์„ ์ด ์—†๋‹ค๋ฉด ํ•ด๋‹น ๋…ธ๋“œ๋Š” terminal node์ด๋‹ค. ํ•œ ๋…ธ๋“œ๊ฐ€ safe node๋ผ๋Š” ๊ฒƒ์€ ํ•ด๋‹น ๋…ธ๋“œ๋กœ๋ถ€ํ„ฐ ์‹œ์ž‘ํ•˜๋Š” ๋ชจ๋“  ๊ฐ€๋Šฅํ•œ ๊ฒฝ๋กœ๊ฐ€ terminal node ํ˜น์€ ๋‹ค๋ฅธ safe node๋กœ ์ด์–ด์ง„๋‹ค๋Š” ๊ฒƒ์ด๋‹ค. ๊ทธ๋ž˜ํ”„์˜ ๋ชจ๋“  safe node๋ฅผ ํฌํ•จํ•˜๋Š” ๋ฐฐ์—ด์„ ..
๋ฌธ์ œ https://leetcode.com/problems/minimum-depth-of-binary-tree/description/ ์ฃผ์–ด์ง„ ์ด์ง„ํŠธ๋ฆฌ์—์„œ ํŠธ๋ฆฌ์˜ ์ตœ์†Œ ๊นŠ์ด๋ฅผ ๊ตฌํ•˜์—ฌ๋ผ. ์ตœ์†Œ ๊นŠ์ด๋Š” ๋ฃจํŠธ ๋…ธ๋“œ๋ถ€ํ„ฐ ๊ฐ€์žฅ ๊ฐ€๊นŒ์šด ๋ฆฌํ”„ ๋…ธ๋“œ๊นŒ์ง€ ๋‚ด๋ ค๊ฐ€๋Š” ์ตœ๋‹จ ๊ฑฐ๋ฆฌ์— ์žˆ๋Š” ๋…ธ๋“œ์˜ ์ˆ˜์ด๋‹ค. Note: ๋ฆฌํ”„ ๋…ธ๋“œ๋Š” ์ž์‹ ๋…ธ๋“œ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์ง€ ์•Š๋‹ค. ํ’€์ด 1. BFS - ๋„ˆ๋น„ ์šฐ์„  ํƒ์ƒ‰ fun minDepth(root: TreeNode?): Int { if(root == null) return 0 val q = ArrayDeque() q.add(root) var depth = 1 while (q.isNotEmpty()) { val curSize = q.size repeat(curSize) { val curNode = q..
์ ์ด
'๐Ÿ“ ์•Œ๊ณ ๋ฆฌ์ฆ˜' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๊ธ€ ๋ชฉ๋ก (2 Page)