๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ

    [Java] 133. Clone Graph

    ๋ฌธ์ œ ํŒŒ์•… ๋…ธ๋“œ๋กœ ์—ฐ๊ฒฐ๋œ ๊ทธ๋ž˜ํ”„๊ฐ€ ์ฃผ์–ด์ง€๊ณ , ํ•ด๋‹น ๊ทธ๋ž˜ํ”„๋ฅผ ๊นŠ์€ ๋ณต์‚ฌํ•ด์„œ ๋ฐ˜ํ™˜ํ•ด์•ผํ•œ๋‹ค. ํ’€์ด 1๏ธโƒฃ bfs ๋ฅผ ์ด์šฉํ•œ ํ’€์ด ๐Ÿ’ก ๋– ์˜ค๋ฅธ Idea ๊นŠ์€ ๋ณต์‚ฌ๋ฅผ ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ์–ด์ฉƒ๋“ , ๋ชจ๋“  ๋…ธ๋“œ์— ๋ฐฉ๋ฌธํ•ด๋ณด๊ณ  ํ•ด๋‹น ๊ฐ’์„ ๊ฐ–๋Š” ์ƒˆ๋กœ์šด ๋…ธ๋“œ๋ฅผ ์ƒ์„ฑํ•ด์•ผํ•œ๋‹ค. ๋ฌธ์ œ์—์„œ val ๊ฐ’์€ unique ํ•˜๋‹ค๊ณ  ํ–ˆ์œผ๋ฏ€๋กœ map์— val ์„ ํ‚ค๊ฐ’์œผ๋กœ ํ•ด์„œ ๋…ธ๋“œ๋ฅผ ์ฐธ์กฐํ•ด์ค€๋‹ค. ์ฒซ๋ฒˆ์งธ ๋…ธ๋“œ๋ถ€ํ„ฐ ์ด์›ƒ ๋…ธ๋“œ๋“ค์— ๋ฐฉ๋ฌธํ•ด๋ณด๊ณ , map์— ๋“ค์–ด์žˆ์ง€ ์•Š์€(์•„์ง ๋ฐฉ๋ฌธํ•˜์ง€ ์•Š์€) ๋…ธ๋“œ๋“ค์€ ํ์— ์ง‘์–ด๋„ฃ์–ด ์ด์›ƒ ๋…ธ๋“œ๋“ค์— ๋ฐฉ๋ฌธํ•˜๊ธฐ๋ฅผ ๋ฐ˜๋ณตํ•œ๋‹ค. ๋งŒ์•ฝ map์— ๋“ค์–ด์žˆ๋Š”(๋ฐฉ๋ฌธํ–ˆ๋˜) ๋…ธ๋“œ๋ผ๋ฉด ํ์— ๋„ฃ์ง€ ์•Š๊ณ  ์ด์›ƒ์œผ๋กœ์„œ ์ถ”๊ฐ€๋งŒ ํ•ด์ค€๋‹ค. class Solution { Map map = new HashMap(); Queue q = new LinkedList(); pu..

    [Java] 373. Find K Pairs with Smallest Sums

    ๋ฌธ์ œ ํŒŒ์•… ๋น„ ๋‚ด๋ฆผ์ฐจ์ˆœ์ธ ๋‘ ์ •์ˆ˜ ๋ฐฐ์—ด nums1 ๊ณผ nums2 ๊ทธ๋ฆฌ๊ณ  k๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. k๊ฐœ์˜ ๊ฐ€์žฅ ํ•ฉ์ด ์ž‘์€ pair ๋ฅผ ๋ฐ˜ํ™˜ํ•ด์•ผํ•œ๋‹ค. ํ’€์ด 1๏ธโƒฃ PriortyQueue ์™€ ์ผ์ข…์˜ ๊ทธ๋ฆฌ๋”” ๋ฒ•์„ ํ™œ์šฉ ๐Ÿ’ก ์ฐธ๊ณ ํ•œ Idea ์ด๋ฒˆ ๋ฌธ์ œ๋Š”, ์•„๋ฌด๋ฆฌ ์—ด์‹ฌํžˆ ๋– ์˜ฌ๋ ค๋ด๋„ ์‹œ๊ฐ„ ์ดˆ๊ณผ & ๋ฉ”๋ชจ๋ฆฌ ์ดˆ๊ณผ ๋•Œ๋ฌธ์— ํ•ด๊ฒฐํ•˜์ง€ ๋ชปํ•˜๊ณ  ๋‹ค๋ฅธ ์‚ฌ๋žŒ์˜ ์•„์ด๋””์–ด๋ฅผ ์ฐธ๊ณ ํ•˜์—ฌ ํ•ด๊ฒฐํ•˜์˜€๋‹ค. ํ•ต์‹ฌ ์•„์ด๋””์–ด๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค. ๋จผ์ €, ๋‘ ์›์†Œ์˜ ํ•ฉ์„ ๊ธฐ์ค€์œผ๋กœ ์˜ค๋ฆ„์ฐจ์ˆœ์œผ๋กœ ์ •๋ ฌํ•˜๋Š” ์šฐ์„ ์ˆœ์œ„ ํ๋ฅผ ์ค€๋น„ํ•œ๋‹ค. nums1 ๋ฐฐ์—ด์˜ ์ธ๋ฑ์Šค๋Š” 0 ์œผ๋กœ ๊ณ ์ •ํ•œ ์ฑ„, nums2 ๋ฐฐ์—ด์„ ์ˆœํšŒํ•˜๋ฉฐ ํ•ฉ์„ ๊ตฌํ•˜๊ณ  ์šฐ์„ ์ˆœ์œ„ ํ์— ์ž…๋ ฅํ•œ๋‹ค. ์šฐ์„ ์ˆœ์œ„ ํ์—๋Š” [ nums1์˜ ๊ฐ’, nums2 ์˜ ๊ฐ’, nums1์˜ ์ธ๋ฑ์Šค, nums1์˜ ๊ฐ’ +nums2์˜ ๊ฐ’ ] ์œผ๋กœ ์ž…๋ ฅํ•ด์ค€๋‹ค. ..

    [Java] 215. Kth Largest Element in an Array

    ๋ฌธ์ œ ํŒŒ์•… ์ •์ˆ˜ ๋ฐฐ์—ด nums ๊ฐ€ ์ฃผ์–ด์ง€๊ณ  k๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. k๋ฒˆ์งธ๋กœ ํฐ ์›์†Œ๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋ฉด ๋œ๋‹ค. ํ’€์ด 1๏ธโƒฃ PriorityQueue๋ฅผ ํ™œ์šฉํ•œ ํ’€์ด ๐Ÿ’ก ๋– ์˜ค๋ฅธ Idea ๋‚ด๋ฆผ์ฐจ์ˆœ์œผ๋กœ ์ •๋ ฌํ•˜๋Š” ์šฐ์„ ์ˆœ์œ„ํ์— ์›์†Œ๋“ค์„ ๋„ฃ๊ณ  k๋ฒˆ์งธ์˜ ์›์†Œ๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค. import java.util.*; class Solution { public int findKthLargest(int[] nums, int k) { PriorityQueue pq = new PriorityQueue((a, b) -> b - a); for (int num : nums) { pq.offer(num); } int ans = 0; while (k-- > 0) { ans = pq.poll(); } return ans; } } ๊ฒฐ๊ณผ ๐Ÿ“– ํšŒ๊ณ  ๋„ˆ๋ฌด ๊ฐ„๋‹จํ•˜๊ฒŒ ๋ฌธ์ œ..

    [Java] 212. Word Search II

    ๋ฌธ์ œ ํŒŒ์•… ๋ฌธ์ž๊ฐ€ ์ฑ„์›Œ์ ธ์žˆ๋Š” m*n ํฌ๊ธฐ์˜ ๋ณด๋“œ๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. ๋ฌธ์ž์—ด์ด ์ฃผ์–ด์ง€๋Š”๋ฐ, ํ•ด๋‹น ๋ฌธ์ž์—ด์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ์œผ๋ฉด ๋ฐ˜ํ™˜ํ•œ๋‹ค. ํ’€์ด 1๏ธโƒฃ ๋ฐฑํŠธ๋ž˜ํ‚น๊ณผ Set ์ด์šฉํ•œ ํ’€์ด ๐Ÿ’ก ๋– ์˜ค๋ฅธ Idea ๋ฐฑํŠธ๋ž˜ํ‚น์œผ๋กœ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋Š” ๋ฌธ์ž์—ด์„ ๋ชจ๋‘ ๊ตฌํ•ด๋ณธ๋‹ค. ( ์ตœ๋Œ€ ๊ธธ์ด 10์œผ๋กœ) ๊ตฌํ•œ ๋ฌธ์ž์—ด์„ Set ์— ๋„ฃ๊ณ , ์ฃผ์–ด์ง€๋Š” ๋ฌธ์ž์—ด์ด Set์— ๋“ค์–ด์žˆ๋Š”์ง€ ํ™•์ธํ•œ๋‹ค. import java.util.*; class Solution { int R; int C; boolean[][] checked; StringBuilder str = new StringBuilder(); int[] dr = {1, -1, 0, 0}; int[] dc = {0, 0, 1, -1}; char[][] board; Set set = new HashSet(); ..

    [Java] 211. Design Add and Search Words Data Structure

    ๋ฌธ์ œ ํŒŒ์•… ํŠน์ • ๋ฌธ์ž์—ด์„ ๋ณด๊ด€ํ•˜๊ณ  search ํ–ˆ์„ ๋•Œ, ์กด์žฌํ•˜๋ฉด true๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋Š” ์ž๋ฃŒ๊ตฌ์กฐ๋ฅผ ๋งŒ๋“ค์–ด์•ผํ•œ๋‹ค. . ์ด ํฌํ•จ๋œ ๊ฒฝ์šฐ๋Š” ์–ด๋– ํ•œ ๋ฌธ์ž๊ฐ€ ๋“ค์–ด๊ฐ€๋„ ํ—ˆ์šฉ๋œ๋‹ค. ํ’€์ด 1๏ธโƒฃ Trie ์ž๋ฃŒ๊ตฌ์กฐ๋ฅผ ์ด์šฉํ•œ ํ’€์ด ๐Ÿ’ก ๋– ์˜ค๋ฅธ Idea Trie ์ž๋ฃŒ๊ตฌ์กฐ๋ฅผ ์ด์šฉํ•˜๋ฉด ์ ‘๋‘์–ด๋‚˜ ๋ถ€๋ถ„ ๋ฌธ์ž์—ด์„ ๊ฒ€์ƒ‰ํ•  ์ˆ˜ ์žˆ๋‹ค. ๋”ฐ๋ผ์„œ, Trie ์ž๋ฃŒ๊ตฌ์กฐ๋ฅผ ๊ตฌํ˜„ํ•˜์˜€๋‹ค. ํŠนํžˆ, ์ด ๋ฌธ์ œ์—์„œ๋Š” search ๊ณผ์ •์—์„œ . ์ด ํฌํ•จ๋˜์–ด ์žˆ๋Š” ๊ฒฝ์šฐ๋Š” ํ•ด๋‹น ๋…ธ๋“œ๊ฐ€ ๊ฐ–๋Š” ๋ชจ๋“  ์ž์‹ ๋…ธ๋“œ๋“ค์„ ํƒ์ƒ‰ํ•˜๋„๋ก ๊ตฌํ˜„ํ•˜์—ฌ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์„ ๊ฒƒ์ด๋ผ ํŒ๋‹จํ•˜์˜€๋‹ค. import java.util.*; class WordDictionary { static class Node { Map children; boolean isEndOfWord; public Node() { t..

    [Java] 208. Implement Trie (Prefix Tree)

    ๋ฌธ์ œ ํŒŒ์•… Trie ์ž๋ฃŒ๊ตฌ์กฐ๋ฅผ ๊ตฌํ˜„ํ•ด์•ผํ•˜๋Š” ๋ฌธ์ œ์ด๋‹ค. ํŠธ๋ผ์ด๋Š” ๋ฌธ์ž์—ด์„ ์ €์žฅํ•˜๊ณ  ํšจ์œจ์ ์œผ๋กœ ํƒ์ƒ‰ํ•˜๊ธฐ ์œ„ํ•œ ํŠธ๋ฆฌ ํ˜•ํƒœ์˜ ์ž๋ฃŒ๊ตฌ์กฐ์ด๋‹ค. ํ•ด์‹œ ํ…Œ์ด๋ธ”์„ ์‚ฌ์šฉํ•˜๋ฉด ๋˜๋Š”๋ฐ, ์™œ ํŠธ๋ผ์ด๋ฅผ ์‚ฌ์šฉํ•ด์•ผํ• ๊นŒ? ๐Ÿšจ ํ•ด์‹œ ํ…Œ์ด๋ธ”์˜ ๊ฒฝ์šฐ ์ ‘๋‘์‚ฌ๋‚˜ ๋ถ€๋ถ„ ๋ฌธ์ž์—ด๋กœ ๊ฒ€์ƒ‰ํ•˜๊ธฐ ํž˜๋“ค๋‹ค. ๋˜ํ•œ, ํ•ด์‹œ ์ฝ”๋“œ๋กœ ์ €์žฅํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ •๋ ฌ๋˜์–ด ์žˆ์ง€ ์•Š๋‹ค. ํ’€์ด 1๏ธโƒฃ Node ํด๋ž˜์Šค ์ •์˜ class Trie { Node root; static class Node { Map children; boolean isEndOfWord; public Node() { this.children = new HashMap(); this.isEndOfWord = false; } } public Trie() { this.root = new Node(); } } Trie..

    [JAVA] ๋ฐฑ์ค€ 1781๋ฒˆ ใ€G2.์ปต๋ผ๋ฉดใ€‘

    ๋ฌธ์ œ 1781๋ฒˆ: ์ปต๋ผ๋ฉด ์ƒ์šฑ ์กฐ๊ต๋Š” ๋™ํ˜ธ์—๊ฒŒ N๊ฐœ์˜ ๋ฌธ์ œ๋ฅผ ์ฃผ๊ณ ์„œ, ๊ฐ๊ฐ์˜ ๋ฌธ์ œ๋ฅผ ํ’€์—ˆ์„ ๋•Œ ์ปต๋ผ๋ฉด์„ ๋ช‡ ๊ฐœ ์ค„ ๊ฒƒ์ธ์ง€ ์ œ์‹œ ํ•˜์˜€๋‹ค. ํ•˜์ง€๋งŒ ๋™ํ˜ธ์˜ ์ฐŒ๋ฅผ๋“ฏํ•œ ์ž์‹ ๊ฐ์— ์†Œ์‹ฌํ•œ ์ƒ์šฑ ์กฐ๊ต๋Š” ๊ฐ๊ฐ์˜ ๋ฌธ์ œ์— ๋Œ€ํ•ด ๋ฐ๋“œ๋ผ www.acmicpc.net ํ’€์ด 1๏ธโƒฃ ์šฐ์„  ์ˆœ์œ„ ํ์™€ ๊ทธ๋ฆฌ๋””๋ฅผ ์ด์šฉํ•œ ํ’€์ด ๐Ÿ’ก ๋– ์˜ค๋ฅธ Idea ์ปต๋ผ๋ฉด์„ ๋ฐ๋“œ๋ผ์ธ์ด ์งง๊ณ  ์ปต๋ผ๋ฉด์„ ๋งŽ์ด ์ฃผ๋Š” ๋ฌธ์ œ๋ถ€ํ„ฐ ๊ฒฐ์ •ํ•ด์„œ ํ์— ์ง‘์–ด๋„ฃ๋Š”๋‹ค. ์ฆ‰, ํ์˜ ํฌ๊ธฐ = ํ’€๊ธฐ๋กœ ๊ฒฐ์ •ํ•œ ๋ฌธ์ œ ์ˆ˜ = ๋‚ด๊ฐ€ ๋ฌธ์ œ๋ฅผ ํ‘ธ๋Š”๋ฐ ์‚ฌ์šฉํ•œ ์‹œ๊ฐ„์ด ๋œ๋‹ค. ๊ทธ๋ฆฌ๊ณ , ์ดํ›„์— ๋‚˜์˜ค๋Š” ๋ฌธ์ œ๋“ค์ด ๋‚ด ํ์˜ ํฌ๊ธฐ๋ณด๋‹ค ํฌ๊ฑฐ๋‚˜ ๊ฐ™์œผ๋ฉด์„œ ๋‚ด ํ์— ๋“ค์–ด์žˆ๋Š” ์ปต๋ผ๋ฉด๋ณด๋‹ค ๋งŽ์ด ์ค€๋‹ค๋ฉด ๋‚ด ํ์— ๋“ค์–ด์žˆ๋˜ ๊ฐ€์žฅ ์ปต๋ผ๋ฉด์„ ์ ๊ฒŒ ์ฃผ๋Š” ๋ฌธ์ œ๋ฅผ ์ œ๊ฑฐํ•˜๊ณ , ์ถ”๊ฐ€ํ•ด์ค€๋‹ค. ์˜ˆ์ œ๋กœ ์›๋ฆฌ๋ฅผ ์„ค๋ช…ํ•ด๋ณด๋ฉด, ๋จผ์ €, ๋ฐ๋“œ๋ผ์ธ์ด ์งง์€ ..

    [JAVA] ๋ฐฑ์ค€ 1655๋ฒˆ ใ€G2.๊ฐ€์šด๋ฐ๋ฅผ ๋งํ•ด์š”ใ€‘

    ๋ฌธ์ œ 1655๋ฒˆ: ๊ฐ€์šด๋ฐ๋ฅผ ๋งํ•ด์š” ์ฒซ์งธ ์ค„์—๋Š” ๋ฐฑ์ค€์ด๊ฐ€ ์™ธ์น˜๋Š” ์ •์ˆ˜์˜ ๊ฐœ์ˆ˜ N์ด ์ฃผ์–ด์ง„๋‹ค. N์€ 1๋ณด๋‹ค ํฌ๊ฑฐ๋‚˜ ๊ฐ™๊ณ , 100,000๋ณด๋‹ค ์ž‘๊ฑฐ๋‚˜ ๊ฐ™์€ ์ž์—ฐ์ˆ˜์ด๋‹ค. ๊ทธ ๋‹ค์Œ N์ค„์— ๊ฑธ์ณ์„œ ๋ฐฑ์ค€์ด๊ฐ€ ์™ธ์น˜๋Š” ์ •์ˆ˜๊ฐ€ ์ฐจ๋ก€๋Œ€๋กœ ์ฃผ์–ด์ง„๋‹ค. ์ •์ˆ˜๋Š” -1 www.acmicpc.net ํ’€์ด 1๏ธโƒฃ ์šฐ์„  ์ˆœ์œ„ ํ ๋‘๊ฐœ๋ฅผ ํ™œ์šฉํ•œ ํ’€์ด ๐Ÿ’ก ๋– ์˜ค๋ฅธ Idea ์šฐ์„  ์ˆœ์œ„ ํ๋Š” ์ด์ง„ ํž™ ๋ฐฉ์‹์œผ๋กœ ๊ตฌ์„ฑ๋˜์–ด ์žˆ๊ธฐ ๋•Œ๋ฌธ์—, ์‚ฌ์šฉํ•˜๋ฉด ์ •๋ ฌ์„ ์œ ์ง€ํ•œ ์‚ฝ์ž… ๊ณผ์ •์„ O(logN) ์— ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ , ์šฐ์„  ์ˆœ์œ„ ํ์— ๋”ฐ๋ผ ์ •๋ ฌ๋œ ๋ฐ์ดํ„ฐ๋ฅผ ๊บผ๋‚ผ ๋•Œ ์—ญ์‹œ, O(logN) ๋กœ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋‹ค. ๋”ฐ๋ผ์„œ ์šฐ์„  ์ˆœ์œ„ ํ๋ฅผ ์‚ฌ์šฉํ•˜๋Š”๊ฒŒ ์‹œ๊ฐ„ ๋ณต์žก๋„๋ฅผ ๋งŒ์กฑ์‹œํ‚ฌ ์ˆ˜ ์žˆ๋‹ค๊ณ  ํŒ๋‹จํ•˜์˜€๋‹ค. ๊ฐ€์šด๋ฐ ์ˆ˜๋ฅผ ํ•ญ์ƒ ๋งํ•ด์•ผ ํ•˜๋ฏ€๋กœ, ๋‚ด๋ฆผ์ฐจ์ˆœ์œผ๋กœ ์ •๋ ฌ๋œ ์šฐ์„ ์ˆœ์œ„ ํ (l..

    [Java] 637. Average of Levels in Binary Tree

    ๋ฌธ์ œ ํŒŒ์•… ๊ฐ level(depth)์˜ ๋…ธ๋“œ๋“ค์˜ val ๊ฐ’ ํ‰๊ท ์„ ๊ตฌํ•ด์„œ ๋ฐ˜ํ™˜ํ•ด์•ผํ•œ๋‹ค. ํ’€์ด 1๏ธโƒฃ ๊ทธ๋ž˜ํ”„ ํƒ์ƒ‰์„ ์ด์šฉํ•œ ํ’€์ด (์ „์œ„ ํƒ์ƒ‰) ๐Ÿ’ก ๋– ์˜ค๋ฅธ Idea ์ „์œ„ ํƒ์ƒ‰์„ depth๋ฅผ 1์”ฉ ์ฆ๊ฐ€์‹œํ‚ค๋ฉด์„œ ํƒ์ƒ‰์„ ํ•œ๋‹ค. ๊ฐ depth์— ๋„๋‹ฌํ–ˆ์„ ๋•Œ, ํ•ด๋‹น depth์˜ ํ•ฉ๊ณผ ๊ฐœ์ˆ˜๋ฅผ ์ €์žฅํ•˜๋Š” List๋ฅผ ํ†ตํ•ด ์ •๋ณด๋ฅผ ๊ฐฑ์‹ ํ•œ๋‹ค. ํƒ์ƒ‰์ด ๋๋‚˜๊ณ  ๋‚˜์„œ, ํ‰๊ท  ๊ฐ’์„ ๊ตฌํ•ด์„œ ๋ฐ˜ํ™˜ํ•ด์ค€๋‹ค. import java.util.*; class Solution { List list = new ArrayList(); public List averageOfLevels(TreeNode root) { List ans = new ArrayList(); preOrder(root, 0); for (int i = 0; i < list.size()..

    [Java] 199. Binary Tree Right Side View

    ๋ฌธ์ œ ํŒŒ์•… ์ฃผ์–ด์ง€๋Š” ํŠธ๋ฆฌ๋ฅผ, ์˜ค๋ฅธ์ชฝ์—์„œ ๋ฐ”๋ผ๋ณด์•˜์„ ๋•Œ ๋ณด์ด๋Š” ๋…ธ๋“œ๋“ค์„ ๋ฐ˜ํ™˜ํ•ด์•ผํ•œ๋‹ค. ๋ฌธ์ œ ํ•ด์„ ์‹œ, ์•ฝ๊ฐ„ ํ˜ผ๋™์ด ์žˆ์–ด์„œ ์ฒ˜์Œ์—๋Š” ํŠธ๋ฆฌ์˜ ๊ฐ€์žฅ ์˜ค๋ฅธ์ชฝ ๋…ธ๋“œ๋“ค์„ ์ถœ๋ ฅํ•ด์•ผํ•˜๋Š” ์ค„ ์•Œ์•˜๋‹ค. ๋”ฐ๋ผ์„œ ์œ„์™€ ๊ฐ™์ด ๊ตฌ์„ฑ๋œ ํŠธ๋ฆฌ์˜ ๊ฒฝ์šฐ, root ๋…ธ๋“œ์˜ right node ๋Š” ์—†๊ธฐ ๋•Œ๋ฌธ์— ๊ฒฐ๊ณผ๊ฐ€ [1] ์ด ๋‚˜์™€์•ผ ๋œ๋‹ค๊ณ  ์ƒ๊ฐํ–ˆ๋Š”๋ฐ ์š”๊ตฌํ•˜๋Š” ๋‹ต์€ [1,2] ์˜€๋‹ค. ํ•ด์„์„ ์ฐพ์•„๋ณด๋‹ˆ, ์ด ํŠธ๋ฆฌ๋ฅผ ์˜ค๋ฅธ์ชฝ์—์„œ ๋ฐ”๋ผ๋ดค์„ ๋•Œ ๋ณด์ด๋Š” ๋…ธ๋“œ๋“ค์„ ์ถœ๋ ฅํ•˜๋ผ๋Š” ๋œป์ด์—ˆ๋‹ค. ํ’€์ด 1๏ธโƒฃ ์ „์œ„ ํƒ์ƒ‰์„ ์ด์šฉํ•œ ํ’€์ด ๐Ÿ’ก ๋– ์˜ค๋ฅธ Idea ์ „์œ„ ํƒ์ƒ‰์˜ ๊ฒฝ์šฐ ์œ„์™€ ๊ฐ™์ด ๋ฃจํŠธ ๋…ธ๋“œ์—์„œ ์‹œ์ž‘ํ•˜์—ฌ ์™ผ์ชฝ ํ˜น์€ ์˜ค๋ฅธ์ชฝ ๊ฒฝ๋กœ์˜ ๋์— ๋„๋‹ฌํ•˜๋ฉด ๋ถ€๋ชจ์˜ ๋ฐ˜๋Œ€ํŽธ ๋…ธ๋“œ๋กœ ๋„˜์–ด๊ฐ€๋Š” ๋ฐฉ์‹์œผ๋กœ ํƒ์ƒ‰ํ•œ๋‹ค. ์œ„ ๋ฌธ์ œ์˜ ๊ฒฝ์šฐ๋Š” ๊ฐ€์žฅ ์˜ค๋ฅธ์ชฝ์„ ํƒ์ƒ‰ํ•ด์•ผํ•˜๋ฏ€๋กœ ๊ฒฝ๋กœ๋ฅผ ์˜ค๋ฅธ์ชฝ์œผ๋กœ ์‹œ์ž‘ํ•˜๋„๋ก ..

    [Java] 230. Kth Smallest Element in a BST

    ๋ฌธ์ œ ํŒŒ์•… k๋ฒˆ์งธ๋กœ ์ž‘์€ ๊ฐ’์„ ์ถœ๋ ฅํ•ด์•ผํ•œ๋‹ค. ํ’€์ด 1๏ธโƒฃ ์ค‘์œ„ ์ˆœํšŒ๋ฅผ ์ด์šฉํ•œ ํ’€์ด ๐Ÿ’ก ๋– ์˜ค๋ฅธ Idea ํŠธ๋ฆฌ ๊ตฌ์กฐ์—์„œ ์ค‘์œ„ ์ˆœํšŒ๋ฅผ ํ•˜๋ฉด ์˜ค๋ฆ„์ฐจ์ˆœ ์ˆœ์„œ๋กœ ๋…ธ๋“œ ๋ฐ์ดํ„ฐ๋ฅผ ์ถœ๋ ฅํ•  ์ˆ˜ ์žˆ๋‹ค. ์ด๋Ÿฌํ•œ ์›๋ฆฌ๋ฅผ ์ ์šฉํ•˜์—ฌ k๋ฒˆ์งธ ๋…ธ๋“œ์— ์ ‘๊ทผํ–ˆ์„ ๋•Œ, ๊ฐ’์„ ์ €์žฅํ•˜๋„๋ก ๊ตฌํ˜„ํ•˜๋ฉด ๋˜๊ฒ ๋‹ค๊ณ  ํŒ๋‹จํ•˜์˜€๋‹ค. class Solution { int ans = 0; int idx = 1; public int kthSmallest(TreeNode root, int k) { inOrder(root, k); return ans; } private void inOrder(TreeNode node, int k) { if (node == null) { return; } inOrder(node.left, k); if (idx == k) { ans =..

    [Java] 530. Minimum Absolute Difference in BST

    ๋ฌธ์ œ ํŒŒ์•… ํŠธ๋ฆฌ ์•ˆ์— ์กด์žฌํ•˜๋Š” ์ž„์˜์˜ ๋‘ ๋…ธ๋“œ์˜ ์ฐจ ์ค‘ ์ตœ์†Ÿ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•ด์•ผํ•œ๋‹ค. ํ’€์ด 1๏ธโƒฃ ์ค‘์œ„ ์ˆœํšŒ๋ฅผ ์ด์šฉํ•œ ํ’€์ด ๐Ÿ’ก ๋– ์˜ค๋ฅธ Idea ๋…ธ๋“œ ๊ตฌ์กฐ์—์„œ ์ค‘์œ„ ์ˆœํšŒ๋ฅผ ํ•˜๋ฉด์„œ ๋…ธ๋“œ ๊ฐ’์„ ์ถœ๋ ฅํ•˜๋ฉด ์˜ค๋ฆ„์ฐจ์ˆœ์œผ๋กœ ์ •๋ ฌ๋œ ๋ฐ์ดํ„ฐ๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ๋‹ค๋Š” ํŠน์ง•์„ ์ด์šฉํ•˜์˜€๋‹ค. ์ฒซ๋ฒˆ์งธ ๋…ธ๋“œ๋Š” ์ด์ „ ๋…ธ๋“œ๊ฐ€ ์กด์žฌํ•˜์ง€ ์•Š์œผ๋ฏ€๋กœ, ๊ณ„์‚ฐ์„ ์ƒ๋žตํ•œ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ด์ „ ๋…ธ๋“œ ๊ฐ’์— ๊ธฐ๋กํ•ด์ค€๋‹ค. ๋‘๋ฒˆ์งธ ๋…ธ๋“œ์— ๋„๋‹ฌํ–ˆ์„ ๋•Œ, ์ด์ „ ๋…ธ๋“œ ๊ฐ’๊ณผ์˜ ์ฐจ์ด๋ฅผ ๊ตฌํ•˜๊ณ  ๊ฐฑ์‹ ํ•œ๋‹ค. ๊ฐฑ์‹  ํ›„, ์ด์ „ ๋…ธ๋“œ ๊ฐ’์— ๋‘๋ฒˆ์งธ ๊ฐ’์„ ๊ธฐ๋กํ•ด์ค€๋‹ค. .... ์œ„ ๊ณผ์ •์„ ๋ฐ˜๋ณตํ•˜๋Š” ๋ฐฉ์‹์ด๋‹ค. class Solution { int ans = Integer.MAX_VALUE; Integer prev = null; public int getMinimumDifference(TreeNode r..

    [JAVA] ๋ฐฑ์ค€ 1715๋ฒˆ ใ€G4.์นด๋“œ ์ •๋ ฌํ•˜๊ธฐใ€‘

    ๋ฌธ์ œ 1715๋ฒˆ: ์นด๋“œ ์ •๋ ฌํ•˜๊ธฐ ์ •๋ ฌ๋œ ๋‘ ๋ฌถ์Œ์˜ ์ˆซ์ž ์นด๋“œ๊ฐ€ ์žˆ๋‹ค๊ณ  ํ•˜์ž. ๊ฐ ๋ฌถ์Œ์˜ ์นด๋“œ์˜ ์ˆ˜๋ฅผ A, B๋ผ ํ•˜๋ฉด ๋ณดํ†ต ๋‘ ๋ฌถ์Œ์„ ํ•ฉ์ณ์„œ ํ•˜๋‚˜๋กœ ๋งŒ๋“œ๋Š” ๋ฐ์—๋Š” A+B ๋ฒˆ์˜ ๋น„๊ต๋ฅผ ํ•ด์•ผ ํ•œ๋‹ค. ์ด๋ฅผํ…Œ๋ฉด, 20์žฅ์˜ ์ˆซ์ž ์นด๋“œ ๋ฌถ์Œ๊ณผ 30์žฅ www.acmicpc.net ํ’€์ด 1๏ธโƒฃ PriorityQueue ๋ฅผ ํ™œ์šฉํ•œ ํ’€์ด ๐Ÿ’ก ๋– ์˜ค๋ฅธ Idea ์•ฝ๊ฐ„, ๊ทธ๋ฆฌ๋”” ์ฒ˜๋Ÿผ ์ƒ๊ฐ์„ ํ•ด๋ณด์•˜๋‹ค. ๋ˆ„์ ์œผ๋กœ ๋ฌถ์Œ์˜ ์ˆ˜๋งŒํผ ํ•ฉ์ณ์ง€๋ฏ€๋กœ, ๊ฐ€์žฅ ์ž‘์€ ๋ฌถ์Œ์˜ ์ˆ˜๋งŒ ์ค‘๋ณต์œผ๋กœ ๊ฐ’์— ๋”ํ•ด์ ธ์•ผํ•œ๋‹ค. ๊ฒฐ๋ก ์€, ์นด๋“œ ๋ฌถ์Œ์„ ํ•ฉ์น˜๋Š”๋ฐ ๋‚จ์€ ์นด๋“œ ๋ฌถ์Œ ์ค‘์—์„œ ๊ฐ€์žฅ ์ž‘์€ ๋‘ ๋ฌถ์Œ์„ ๊ณจ๋ผ์„œ ํ•ฉ์ณ์•ผ ํ•œ๋‹ค. ์นด๋“œ ๋ฌถ์Œ์„ ํ•ฉ์น˜๊ฒŒ ๋˜๋ฉด, ๋‹ค๋ฅธ ํ›„๋ณด ๋ฌถ์Œ๋“ค ๋ณด๋‹ค ์ปค์ง€๊ฒŒ ๋  ์ˆ˜๋„ ์žˆ๊ณ  ์—ฌ์ „ํžˆ ์ž‘์„ ์ˆ˜๋„ ์žˆ๋‹ค. ๋”ฐ๋ผ์„œ, ์ผ๋‹จ์€ ์ด ์นด๋“œ ๋ฌถ์Œ์„ ๋‹ค์‹œ ํ›„๋ณด๋กœ ์˜ฌ๋ ค๋‘๊ณ ,..

    [JAVA] ๋ฐฑ์ค€ 23326๋ฒˆ ใ€G3.ํ™์ต ํˆฌ์–ด๋ฆฌ์ŠคํŠธใ€‘

    ๋ฌธ์ œ 23326๋ฒˆ: ํ™์ต ํˆฌ์–ด๋ฆฌ์ŠคํŠธ ๋„ํ˜„์ด๋Š” ํ™์ต ํˆฌ์–ด๋ฆฌ์ŠคํŠธ๊ฐ€ ๋˜์–ด ํ™์ต๋Œ€ํ•™๊ต๋ฅผ ๊ฒฌํ•™ํ•˜๋ ค๊ณ  ํ•œ๋‹ค. ํ™์ต๋Œ€ํ•™๊ต๋Š” $N$๊ฐœ์˜ ๊ตฌ์—ญ์ด ์›ํ˜•์œผ๋กœ ๋ฐฐ์น˜๋œ ๋ชจ์Šต์ด๋‹ค. $1$๋ฒˆ ๊ตฌ์—ญ์—์„œ ์‹œ๊ณ„ ๋ฐฉํ–ฅ์œผ๋กœ ๊ฐ๊ฐ $2$๋ฒˆ, ... , $N$๋ฒˆ ๊ตฌ์—ญ์ด ์กด์žฌํ•˜๊ณ , www.acmicpc.net ํ’€์ด 1๏ธโƒฃ treeSet์„ ์ด์šฉํ•œ ํ’€์ด ๐Ÿ’ก ๋– ์˜ค๋ฅธ Idea ๊ตฌ์—ญ์˜ ๊ฐœ์ˆ˜๊ฐ€ 500000 ์ด๊ณ  ์ฟผ๋ฆฌ์˜ ๊ฐœ์ˆ˜๊ฐ€ 100000 ์ด๋ฏ€๋กœ ์„ ํ˜•ํƒ์ƒ‰์„ ํ•˜๊ฒŒ๋˜๋ฉด ์‹œ๊ฐ„๋ณต์žก๋„๊ฐ€ ์ตœ๋Œ€ 500000*100000 ์œผ๋กœ ์ ˆ๋Œ€ ํ†ต๊ณผ ๋ชปํ•˜๋Š” ์ˆ˜์น˜๊ฐ€ ๋‚˜์˜จ๋‹ค. ๋”ฐ๋ผ์„œ, treeSet์„ ์ด์šฉํ•œ ํ’€์ด๊ฐ€ ํ•„์š”ํ•˜๋‹ค. treeSet์˜ ๋Œ€๋ถ€๋ถ„์˜ ๋ฉ”์„œ๋“œ๋Š” log(N) ์˜ ์„ฑ๋Šฅ์œผ๋กœ ๋™์ž‘ํ•˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. treeSet์— ๋ช…์†Œ ๋ฒˆํ˜ธ๋ฅผ ๊ฐฑ์‹ ํ•˜๊ณ , ์ฟผ๋ฆฌ๋ฌธ์„ ์ˆ˜ํ–‰ํ•˜๋ฉด์„œ ๋„ํ˜„์ด์˜ ์œ„์น˜๋„ ๊ฐฑ์‹ ํ•œ๋‹ค...

    Hash ์ž๋ฃŒ๊ตฌ์กฐ์™€ ํ•ด์‹œ ์ถฉ๋Œ

    Hash Table ์ด๋ž€ Hash Table์€ ๋ฐ์ดํ„ฐ๋ฅผ key-value ํ˜•์‹์œผ๋กœ ๋ณด๊ด€ํ•˜์—ฌ ๊ฒ€์ƒ‰ · ์‚ฝ์ž… · ์‚ญ์ œ๋ฅผ O(1) ์‹œ๊ฐ„ ๋ณต์žก๋„๋กœ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋Š” ์ž๋ฃŒ๊ตฌ์กฐ์ด๋‹ค. Hash Table์€ key ๊ฐ’์„ ํ†ตํ•ด ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ค๋ฃจ๊ธฐ ๋•Œ๋ฌธ์—, key ๊ฐ’์€ ๊ณ ์œ ํ•ด์•ผํ•œ๋‹ค. ์ด๋Ÿฌํ•œ ๊ณ ์œ ํ•œ key ๊ฐ’์„ ๋งŒ๋“œ๋Š” ์ž‘์—…์€ ํ•ด์‹œ ํ•จ์ˆ˜๊ฐ€ ๋‹ด๋‹นํ•˜๋Š”๋ฐ, ๋Œ€ํ‘œ์ ์œผ๋กœ๋Š” key ๊ฐ’์˜ ASCII ๊ฐ’์„ ํ•ฉํ•˜์—ฌ ๋งŒ๋“œ๋Š” ๊ฐ„๋‹จํ•œ ๋ฐฉ๋ฒ•์ด ์žˆ๋‹ค. ์ด๋Ÿฌํ•œ ํ•ด์‹œ ํ•จ์ˆ˜๊ฐ€ key๋ฅผ ๋งŒ๋“œ๋Š” ๊ณผ์ •์—์„œ, ์˜๋„ํ•˜์ง€ ์•Š๊ฒŒ ์šฐ์—ฐํžˆ key ๊ฐ’์ด ์ผ์น˜ํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋Š”๋ฐ ๐Ÿ’ก ์ด๋ฅผ ํ•ด์‹œ ์ถฉ๋Œ์ด๋ผ๊ณ  ํ•œ๋‹ค. ํ•ด์‹œ ์ถฉ๋Œ์ด ๋ฐœ์ƒํ•˜๋ฉด, key ๊ฐ’์ด ์ค‘๋ณต๋˜์–ด ๋ฐ์ดํ„ฐ๊ฐ€ ์‚ฌ๋ผ์งˆ ์ˆ˜ ์žˆ๋‹ค. ๋”ฐ๋ผ์„œ ํ•ด์‹œ ์ถฉ๋Œ์ด ๋ฐœ์ƒํ•˜๋ฉด ๋Œ€์ฒ˜ํ•ด์•ผํ•œ๋‹ค. ๋Œ€ํ‘œ์ ์ธ ๋ฐฉ๋ฒ•์œผ๋กœ๋Š” ์ฒด์ธ๋ฒ• (Seperate C..