๐Ÿ‘จ๐Ÿป‍๐Ÿ’ป PS

    [Java] 162. Find Peak Element

    ๋ฌธ์ œ ํŒŒ์•… ์ฃผ๋ณ€ ์›์†Œ๋“ค๋ณด๋‹ค ํฐ ์›์†Œ๋ฅผ peak element๋ผ๊ณ  ํ•œ๋‹ค. ๊ทธ๋Ÿฌํ•œ ์›์†Œ๊ฐ€ ์—ฌ๋Ÿฌ๊ฐœ๋ผ๋ฉด ์•„๋ฌด ์›์†Œ์˜ ์ธ๋ฑ์Šค๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋ฉด ๋œ๋‹ค. ์‹œ๊ฐ„ ๋ณต์žก๋„๊ฐ€ O(logN) ์ด ๋˜๋„๋ก ๊ตฌํ˜„ํ•ด์•ผํ•œ๋‹ค. ํ’€์ด 1๏ธโƒฃ ์ด๋ถ„ ํƒ์ƒ‰์„ ์ด์šฉํ•œ ํ’€์ด ๐Ÿ’ก ๋– ์˜ค๋ฅธ Idea ์‹œ๊ฐ„๋ณต์žก๋„๋ฅผ ํ†ตํ•ด ์ด๋ถ„ ํƒ์ƒ‰์„ ์ด์šฉํ•ด์•ผํ•จ์„ ์•Œ ์ˆ˜ ์žˆ์—ˆ๋‹ค. ๋ณดํ†ต ์ด๋ถ„ํƒ์ƒ‰์€ ์ •๋ ฌ๋œ ๋ฐฐ์—ด์—์„œ๋งŒ ์‚ฌ์šฉํ•ด์™€์„œ, ์ด๋ถ„ ํƒ์ƒ‰์„ ์–ด๋–ป๊ฒŒ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ์„์ง€ ์˜ค๋žซ๋™์•ˆ ์ƒ๊ฐํ•ด๋ณด์•˜๋‹ค. mid ํฌ์ธํŠธ ๊ฐ’์ด mid + 1 ํฌ์ธํŠธ ๊ฐ’๋ณด๋‹ค ์ž‘๋‹ค๋ฉด? mid ํฌ์ธํŠธ ๊ฐ’์€ peak element ๊ฐ€ ๋  ํ™•๋ฅ ์ด ์กด์žฌํ•˜์ง€ ์•Š๋Š”๋‹ค. ๋”ฐ๋ผ์„œ ํƒ์ƒ‰ ๋ฒ”์œ„๋ฅผ mid+1 ์ด์ƒ์œผ๋กœ ์žก์•„์ค˜์•ผ ํ•  ๊ฒƒ์ด๋‹ค. ๋งŒ์•ฝ, mid ํฌ์ธํŠธ ๊ฐ’์ด mid + 1 ํฌ์ธํŠธ ๊ฐ’ ๋ณด๋‹ค ํฌ๋‹ค๋ฉด mid ํฌ์ธํŠธ ๊ฐ’์€ peak element ..

    [Java] 148. Sort List

    ๋ฌธ์ œ ํŒŒ์•… ์—ฐ๊ฒฐ ๋ฆฌ์ŠคํŠธ์˜ head๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. ์˜ค๋ฆ„์ฐจ์ˆœ์œผ๋กœ ์ •๋ ฌํ•ด์„œ ๋ฐ˜ํ™˜ํ•ด์•ผํ•œ๋‹ค. ํ’€์ด 1๏ธโƒฃ ๋ฐฐ์—ด๊ณผ mergeSort ๐Ÿ’ก ๋– ์˜ค๋ฅธ Idea O(NlogN) ๋ฐฉ์‹์œผ๋กœ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•œ ๋ฐฉ๋ฒ•์„ ๋– ์˜ฌ๋ ค๋ดค๋‹ค. ํ•ด๋‹น ์‹œ๊ฐ„ ๋ณต์žก๋„๋กœ ์ •๋ ฌํ•  ์ˆ˜ ์žˆ๋Š” Merge Sort ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•ด์•ผ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์„ ๊ฒƒ์ด๋ผ ํŒ๋‹จํ–ˆ๋‹ค. class Solution { public ListNode sortList(ListNode head) { int cnt = getCount(head); System.out.println(cnt); int[] arr = new int[cnt]; ListNode dummyHead = new ListNode(0, head); ListNode node = head; for (int i = 0; i < cnt; i..

    [JAVA] ๋ฐฑ์ค€ 22939๋ฒˆ ใ€G4.๋ฌธ์ œ ์ถ”์ฒœ ์‹œ์Šคํ…œ Version 1ใ€‘

    ๋ฌธ์ œ 21939๋ฒˆ: ๋ฌธ์ œ ์ถ”์ฒœ ์‹œ์Šคํ…œ Version 1 tony9402๋Š” ์ตœ๊ทผ ๊นƒํ—™์— ์ฝ”๋”ฉํ…Œ์ŠคํŠธ ๋Œ€๋น„ ๋ฌธ์ œ๋ฅผ ์ง์ ‘ ๋ฝ‘์•„์„œ "๋ฌธ์ œ ๋ฒˆํ˜ธ, ๋‚œ์ด๋„"๋กœ ์ •๋ฆฌํ•ด๋†จ๋‹ค. ๊นƒํ—™์„ ์ด์šฉํ•˜์—ฌ ๊ณต๋ถ€ํ•˜์‹œ๋Š” ๋ถ„๋“ค์„ ์œ„ํ•ด ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ํ•ด๋ณด๋ ค๊ณ  ํ•œ๋‹ค. ๋งŒ๋“ค๋ ค๊ณ  ํ•˜๋Š” ๋ช…๋ น www.acmicpc.net ํ’€์ด 1๏ธโƒฃ TreeMap ๊ณผ TreeSet์„ ์ด์šฉํ•œ ํ’€์ด ๐Ÿ’ก ๋– ์˜ค๋ฅธ Idea 1. ์š”๊ตฌ์‚ฌํ•ญ์— ๊ฐ€์žฅ ๋‚œ์ด๋„๊ฐ€ ๋‚ฎ์€ ๊ฒƒ์—์„œ ๊ฐ€์žฅ ๋ฌธ์ œ๋ฒˆํ˜ธ๊ฐ€ ์ž‘์€ ๊ฒƒ๊ณผ ๊ฐ€์žฅ ๋‚œ์ด๋„๊ฐ€ ๋†’์€ ๊ฒƒ์—์„œ ๊ฐ€์žฅ ๋ฌธ์ œ๋ฒˆํ˜ธ๊ฐ€ ํฐ ๊ฒƒ์„ ์ถœ๋ ฅํ•˜๋ผ๊ณ  ํ–ˆ๋‹ค. ๋”ฐ๋ผ์„œ, ๋‚œ์ด๋„๋ฅผ key๋กœ ์ •๋ ฌํ•ด์ฃผ๋Š” TreeMap์•ˆ์— value๋กœ ๋ฌธ์ œ ๋ฒˆํ˜ธ์˜ ํฌ๊ธฐ์ˆœ์œผ๋กœ ์ •๋ ฌํ•ด์ฃผ๋Š” TreeSet์„ ์‚ฌ์šฉํ•˜๋ฉด ๋˜๊ฒ ๋‹ค๊ณ  ํŒ๋‹จํ–ˆ๋‹ค. 2. ๋˜ํ•œ, solved ์š”์ฒญ ์‹œ ๋ฌธ์ œ ๋ฒˆํ˜ธ๋ฅผ ์ž…๋ ฅ๋ฐ›์•„ ์ง€์›Œ์•ผ ํ•˜๋Š”..

    [JAVA] ๋ฐฑ์ค€ 20166๋ฒˆ ใ€G4.๋ฌธ์ž์—ด ์ง€์˜ฅ์— ๋น ์ง„ ํ˜ธ์„ใ€‘

    ๋ฌธ์ œ 20166๋ฒˆ: ๋ฌธ์ž์—ด ์ง€์˜ฅ์— ๋น ์ง„ ํ˜ธ์„ K๊ฐœ์˜ ์ค„์— ๊ฑธ์ณ์„œ, ์‹ ์ด ์ข‹์•„ํ•˜๋Š” ๋ฌธ์ž์—ด์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋Š” ๊ฒฝ์šฐ์˜ ์ˆ˜๋ฅผ ์ˆœ์„œ๋Œ€๋กœ ์ถœ๋ ฅํ•œ๋‹ค. www.acmicpc.net ํ’€์ด 1๏ธโƒฃ ๋ฐฑํŠธ๋ž˜ํ‚น๊ณผ map์„ ์ด์šฉํ•œ ํ’€์ด ์ด ๋ฌธ์ œ๋Š” ๋ฐฑํŠธ๋ž˜ํ‚น๊ณผ ํ•ด์‹œ๋ฅผ ํ†ตํ•ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜์˜€๋‹ค. ๋ฐฑํŠธ๋ž˜ํ‚น์„ ํ†ตํ•ด์„œ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋Š” ๋ฌธ์ž์—ด์˜ ์กฐํ•ฉ๋ณ„ ๊ฐœ์ˆ˜๋ฅผ ๊ธฐ๋กํ•˜์˜€๋Š”๋ฐ, ๊ฒฝ๋กœ๊ฐ€ ๋‹ค๋ฅด๋ฉด ๋‹ค๋ฅธ ๊ฒฝ์šฐ์˜ ์ˆ˜๋กœ ์น˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ๋ฐฑํŠธ๋ž˜ํ‚น์„ map์˜ ๊ฐ ํฌ์ธํŠธ์—์„œ ์‹œ์ž‘ํ•˜๋„๋ก ์„ค์ •ํ•˜์˜€๊ณ  ํƒˆ์ถœ ์กฐ๊ฑด์„ ์„ค์ •ํ•œ ๊ธธ์ด์— ๋„๋‹ฌํ–ˆ์„ ๋•Œ ๊ธฐ๋กํ•˜๋Š” ๋ฐฉ์‹์„ ์‚ฌ์šฉํ–ˆ๋‹ค. ์™œ๋ƒํ•˜๋ฉด, ์˜ˆ๋ฅผ ๋“ค์–ด (1,1) ์—์„œ ์‹œ์ž‘ํ•ด์„œ ๊ธธ์ด๊ฐ€ 2๋ฅผ ๋งŒ์กฑํ• ๋•Œ์˜ ๊ฒฝ์šฐ์˜ ์ˆ˜๋Š” ๋‹ค๋ฅธ ํฌ์ธํŠธ์—์„œ ์‹œ์ž‘ํ•œ ๊ธธ์ด๊ฐ€ 2์ธ ๊ฒฝ์šฐ์™€ ์ ˆ๋Œ€ ์ค‘๋ณต์ด ๋ฐœ์ƒํ•˜์ง€ ์•Š์„ ๊ฒƒ์ด๋ผ ํŒ๋‹จํ–ˆ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. import java.io.*;..

    [Java] 242. Valid Anagram

    ๋ฌธ์ œ ํŒŒ์•… ๋‘ ๋ฌธ์ž์—ด s์™€ t๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. ๋‘ ๋ฌธ์ž์—ด์„ ์ด๋ฃจ๋Š” ๋ฌธ์ž์˜ ์ข…๋ฅ˜์™€ ๊ฐœ์ˆ˜๊ฐ€ ๋™์ผํ•  ๋•Œ, Anagram ์ด๋ผ๊ณ  ํ•˜๋Š”๋ฐ Anagram์ธ์ง€ ํŒ๋‹จํ•˜๋Š” ๋ฌธ์ œ์ด๋‹ค. ํ’€์ด 1๏ธโƒฃ map์„ ์ด์šฉํ•œ ํ’€์ด ๐Ÿ’ก ๋– ์˜ค๋ฅธ Idea s ๋ฌธ์ž์—ด์„ ์ชผ๊ฐ  ํ›„, ๊ฐ ๋ฌธ์ž๋ณ„ ๊ฐœ์ˆ˜๋ฅผ map์— ๊ธฐ๋กํ•œ๋‹ค. ๊ทธ๋ฆฌ๊ณ  t ๋ฌธ์ž์—ด์„ ์ชผ๊ฐ  ํ›„, ์ˆœํšŒํ•˜๋ฉด์„œ map์— ๊ธฐ๋ก๋˜์–ด์žˆ๋Š”์ง€ ํ™•์ธํ•˜๊ณ  ๊ฐœ์ˆ˜๋ฅผ -1 ํ•œ๋‹ค. ๋งŒ์•ฝ, ๋ฌธ์ž๊ฐ€ ์กด์žฌํ•˜์ง€ ์•Š๊ฑฐ๋‚˜ ๊ฐœ์ˆ˜๊ฐ€ 0๋ฏธ๋งŒ์ด ๋˜๋ฉด false๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค. ๋˜ํ•œ, ์• ์ดˆ์— ๋ฌธ์ž์—ด์˜ ๊ธธ์ด๊ฐ€ ๋‹ค๋ฅด๋‹ค๋ฉด false๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค. [Java] 383. Ransom Note ๋ฌธ์ œ ํŒŒ์•… ransomNote ๋ฌธ์ž์—ด์ด magazine ๋ฌธ์ž์—ด์˜ ๋ฌธ์ž๋“ค๋กœ ๊ตฌ์„ฑ๋  ์ˆ˜ ์žˆ์œผ๋ฉด true๋ฅผ, ๊ทธ๋ ‡์ง€ ์•Š๋‹ค๋ฉด false๋ฅผ ๋ฐ˜ํ™˜ํ•ด์•ผํ•œ๋‹ค. magazine์˜..

    [Java] 383. Ransom Note

    ๋ฌธ์ œ ํŒŒ์•… ransomNote ๋ฌธ์ž์—ด์ด magazine ๋ฌธ์ž์—ด์˜ ๋ฌธ์ž๋“ค๋กœ ๊ตฌ์„ฑ๋  ์ˆ˜ ์žˆ์œผ๋ฉด true๋ฅผ, ๊ทธ๋ ‡์ง€ ์•Š๋‹ค๋ฉด false๋ฅผ ๋ฐ˜ํ™˜ํ•ด์•ผํ•œ๋‹ค. magazine์˜ ๋ฌธ์ž๋Š” ์ค‘๋ณต์œผ๋กœ ์—ฌ๋Ÿฌ๋ฒˆ ์“ฐ์ผ ์ˆ˜ ์—†๋‹ค. ํ’€์ด 1๏ธโƒฃ map์„ ์ด์šฉํ•œ ํ’€์ด ๐Ÿ’ก ๋– ์˜ค๋ฅธ Idea magazine ๋ฌธ์ž์—ด์„ ๋ฌธ์ž๋กœ ์ชผ๊ฐ  ํ›„, map ์ž๋ฃŒ๊ตฌ์กฐ๋ฅผ ์ด์šฉํ•ด์„œ ๋ฌธ์ž ๋ณ„ ๊ฐœ์ˆ˜๋ฅผ ๊ธฐ๋กํ•œ๋‹ค. ๊ทธ๋ฆฌ๊ณ , ransomNote ๋ฌธ์ž์—ด์˜ ๋ฌธ์ž๋ฅผ ์ˆœํšŒํ•˜๋ฉด์„œ ๊ธฐ๋กํ•œ map ์ž๋ฃŒ๊ตฌ์กฐ์— ๋ฌธ์ž๊ฐ€ ์กด์žฌํ•˜๋Š”์ง€ ์ฒดํฌํ•˜๊ณ  ์žˆ๋‹ค๋ฉด ๊ฐœ์ˆ˜๋ฅผ -1 ํ•œ๋‹ค. ๊ธฐ๋ก๋˜์–ด ์žˆ๋Š” ๋ฌธ์ž๊ฐ€ ์—†๊ฑฐ๋‚˜ ๊ฐœ์ˆ˜๊ฐ€ ๋ชจ์ž๋ฅธ ๊ฒฝ์šฐ false ๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค. import java.util.*; class Solution { public boolean canConstruct(String ransomNote, S..

    [Java] 219. Contains Duplicate II

    ๋ฌธ์ œ ํŒŒ์•… ์ •์ˆ˜ ๋ฐฐ์—ด์ธ nums ์—์„œ ๋‘ ์ธ๋ฑ์Šค์˜ ์ฐจ์ด๊ฐ€ k ์ดํ•˜์ด๋ฉด์„œ ๊ฐ’์ด ๊ฐ™์œผ๋ฉด true๋ฅผ ๋ฐ˜ํ™˜ํ•˜๊ณ  ์—†๋‹ค๋ฉด false๋ฅผ ๋ฐ˜ํ™˜ํ•ด์•ผํ•œ๋‹ค. ํ’€์ด 1๏ธโƒฃ Map์„ ์ด์šฉํ•œ ํ’€์ด ๐Ÿ’ก ๋– ์˜ค๋ฅธ Idea nums๋ฅผ ์ˆœํšŒํ•˜๋ฉด์„œ map์— ๊ฐ’์„ key๋กœ ์ธ๋ฑ์Šค๋ฅผ value๋กœ ์ €์žฅํ•˜๊ณ , map์— ์ด๋ฏธ ์กด์žฌํ•˜๋ฉด ํ˜„์žฌ ์œ„์น˜์™€ map์— ์ €์žฅ๋˜์–ด ์žˆ๋Š” ์ธ๋ฑ์Šค์˜ ์ฐจ์ด๋ฅผ ๊ตฌํ•ด์„œ ๋น„๊ตํ•ด๋ณธ๋‹ค. ๋งŒ์•ฝ, ์ธ๋ฑ์Šค๊ฐ„ ์ฐจ์ด๊ฐ€ k๋ณด๋‹ค ํฌ๋‹ค๋ฉด map์„ ๊ฐฑ์‹ ํ•ด์ค€๋‹ค. ์™œ๋ƒํ•˜๋ฉด ์ดํ›„์— ์ธ๋ฑ์Šค ์ฐจ์ด๊ฐ€ k ์ดํ•˜์ธ ๊ฒฝ์šฐ๊ฐ€ ์ƒ๊ธธ ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. import java.util.*; class Solution { public boolean containsNearbyDuplicate(int[] nums, int k) { HashMap map = new HashMa..

    [Java] 1. Two Sum

    ๋ฌธ์ œ ํŒŒ์•… ์ •์ˆ˜ ๋ฐฐ์—ด nums ๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. ๋ฐฐ์—ด์˜ ๋‘ ์›์†Œ๋ฅผ ๋”ํ–ˆ์„ ๋•Œ, target์ด ๋˜๋Š” ๊ฐ’์˜ ์ธ๋ฑ์Šค๋ฅผ ๋ฐ˜ํ™˜ํ•ด์•ผํ•œ๋‹ค. ๋‹ต์€ ์ •ํ™•ํžˆ 1๊ฐœ ์กด์žฌํ•œ๋‹ค. ํ’€์ด 1๏ธโƒฃ HashMap ์„ ์ด์šฉํ•œ ํ’€์ด ๐Ÿ’ก ๋– ์˜ค๋ฅธ Idea ๊ฐ ๊ฐ’์„ key ๋กœ, ์ธ๋ฑ์Šค ๊ฐ’์„ value ๋กœ ์ €์žฅํ•˜๋Š” map์„ ์ •์˜ํ•œ๋‹ค. nums ๋ฐฐ์—ด์„ ์ˆœํšŒํ•˜๋ฉด์„œ target-nums[i] ๊ฐ€ map ์— ์กด์žฌํ•˜๋Š”์ง€ ํ™•์ธํ•˜๊ณ , ์กด์žฌํ•œ๋‹ค๋ฉด ๋‹ต์œผ๋กœ ๋ฐ˜ํ™˜ํ•œ๋‹ค. import java.util.*; class Solution { public int[] twoSum(int[] nums, int target) { HashMap map = new HashMap(); for(int i=0;i a[0] - b[0]); int left = 0, right = nodes.l..

    [Java] 150. Evaluate Reverse Polish Notation

    ๋ฌธ์ œ ํŒŒ์•… ์—ญ ํด๋ž€๋“œ ํ‘œ๊ธฐ๋ฒ•์— ๋”ฐ๋ฅธ ์—ฐ์‚ฐ ๊ฒฐ๊ณผ๋ฅผ ๋ฐ˜ํ™˜ํ•ด์•ผํ•œ๋‹ค. ์—ฐ์‚ฐ์ž๋ฅผ ๋งŒ๋‚˜๋ฉด ์ด์ „์— ๋งŒ๋‚ฌ๋˜ ์ˆซ์ž 2๊ฐœ๋ฅผ ์—ฐ์‚ฐํ•˜๋Š” ๋ฐฉ์‹์ด๋‹ค. ์˜ˆ๋กœ, 4 13 5 / + ์˜ ๊ฒฝ์šฐ / ์—ฐ์‚ฐ์ž๋ฅผ ๋งŒ๋‚˜๊ธฐ ์ง์ „ 13 ๊ณผ 5๊ฐ€ ์žˆ์œผ๋ฏ€๋กœ 13 / 5 ๋ฅผํ•ด์ฃผ๊ณ  ๋‚˜์˜จ ๊ฒฐ๊ณผ๋ฅผ ๋‹ค์‹œ ๋„ฃ์–ด์ฃผ๋ฉด 4 2 + ๊ฐ€ ๋œ๋‹ค. ๊ทธ๋ฆฌ๊ณ  + ์—ฐ์‚ฐ์ž๋ฅผ ๋งŒ๋‚˜๊ธฐ ์ง์ „ 4์™€ 2๊ฐ€ ์žˆ์œผ๋ฏ€๋กœ 4 + 2 ๋ฅผ ํ•œ ๊ฐ’์ธ 6์„ ๋ฐ˜ํ™˜ํ•˜๋ฉด ๋œ๋‹ค. ํ’€์ด 1๏ธโƒฃ ์Šคํƒ์„ ์ด์šฉํ•œ ํ’€์ด ๐Ÿ’ก ๋– ์˜ค๋ฅธ Idea ์—ญ ํด๋ž€๋“œ ํ‘œ๊ธฐ๋ฒ•์˜ ์—ฐ์‚ฐ ๋ฐฉ์‹ ์ƒ, ์Šคํƒ์„ ์ด์šฉํ•ด์„œ ํ’€์–ด์•ผ๊ฒ ๋‹ค๋Š” ์ƒ๊ฐ์ด ๋ฐ”๋กœ ๋“ค์—ˆ๋‹ค. ์—ฐ์‚ฐ์ž๋ฅผ ๋งŒ๋‚˜๋ฉด, ๊ฐ€์žฅ ๊ทผ์ฒ˜์— ์žˆ๋Š” ์ˆ˜๋ฅผ ๋’ค๋กœ ๋‘๊ณ  ์—ฐ์‚ฐํ•œ ๋‹ค์Œ, ๋‹ค์‹œ ์Šคํƒ์— ๋„ฃ๋Š” ๋ฐฉ์‹์œผ๋กœ ์ง„ํ–‰ํ•˜๋ฉด ๋  ๊ฒƒ์ด๋‹ค. import java.util.*; class Solution { Stack stac..

    [Java] 155. Min Stack

    ๋ฌธ์ œ ํŒŒ์•… O(1) ์‹œ๊ฐ„ ๋ณต์žก๋„๋กœ ํ•ด๋‹น ๋ฉ”์„œ๋“œ ๋“ค์„ ๋™์ž‘ํ•  ์ˆ˜ ์žˆ๋„๋ก ๊ตฌํ˜„ํ•ด์•ผํ•œ๋‹ค. ํ’€์ด 1๏ธโƒฃ Stack ํด๋ž˜์Šค ์ด์šฉ ์œ„ ๋ฌธ์ œ์—์„œ, ๊ฐ€์žฅ ์ค‘์š”ํ•œ ๋ฉ”์„œ๋“œ๋Š” getMin() ๋ฉ”์„œ๋“œ์ด๋‹ค. ๋‹ค๋ฅธ, push(), pop(), top() ๋ฉ”์„œ๋“œ๋Š” ๊ธฐ์กด Stack ํด๋ž˜์Šค์—์„œ๋„ O(1) ์— ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ๋”ฐ๋ผ์„œ, ์Šคํƒ์— ์š”์†Œ๋ฅผ ์‚ฝ์ž…ํ•  ๋•Œ, ์ตœ์†Ÿ๊ฐ’์„ ์ €์žฅํ•˜๊ณ  getMin() ๋ฉ”์„œ๋“œ๋ฅผ ํ˜ธ์ถœํ•  ๋•Œ ๋ฐ”๋กœ ๋ฐ˜ํ™˜ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ด์•ผ O(1)์„ ๋งŒ์กฑํ•  ์ˆ˜ ์žˆ์„ ๊ฒƒ์ด๋‹ค. ์ตœ์†Ÿ๊ฐ’์„ ์ €์žฅํ•˜๋Š” ์Šคํƒ์„ ๋”ฐ๋กœ ์ถ”๊ฐ€ํ•ด์„œ, ๊ฐ’์„ push ํ• ๋•Œ๋งˆ๋‹ค ํ•ด๋‹น ์œ„์น˜์˜ ์Šคํƒ ๊ฐ’๊นŒ์ง€์˜ ์ตœ์†Ÿ๊ฐ’์„ ๊ธฐ๋กํ•˜๋„๋ก ๊ตฌํ˜„ํ•˜์˜€๋‹ค. import java.util.*; class MinStack { Stack stack; Stack stackForMin; pub..

    [JAVA] ๋ฐฑ์ค€ 13414๋ฒˆ ใ€S3.์ˆ˜๊ฐ•์‹ ์ฒญใ€‘

    ๋ฌธ์ œ 13414๋ฒˆ: ์ˆ˜๊ฐ•์‹ ์ฒญ ์ž…๋ ฅ ๋ฐ์ดํ„ฐ๋Š” ํ‘œ์ค€ ์ž…๋ ฅ์„ ์‚ฌ์šฉํ•œ๋‹ค. ์ž…๋ ฅ์€ 1๊ฐœ์˜ ํ…Œ์ŠคํŠธ ๋ฐ์ดํ„ฐ๋กœ ๊ตฌ์„ฑ๋œ๋‹ค. ์ž…๋ ฅ์˜ ์ฒซ ๋ฒˆ์งธ ์ค„์—๋Š” ๊ณผ๋ชฉ์˜ ์ˆ˜๊ฐ• ๊ฐ€๋Šฅ ์ธ์› K(1 ≤ K ≤ 100,000)์™€ ํ•™์ƒ๋“ค์ด ๋ฒ„ํŠผ์„ ํด๋ฆญํ•œ ์ˆœ์„œ๋ฅผ ๊ธฐ๋กํ•œ ๋Œ€๊ธฐ๋ชฉ www.acmicpc.net ํ’€์ด ๋จผ์ € ์ด ๋ฌธ์ œ๋Š”, ์ˆ˜๊ฐ• ์‹ ์ฒญ์„ ํ•œ ํ•™์ƒ๋“ค์„ ์ˆœ์„œ๋Œ€๋กœ ์ž๋ฃŒ๊ตฌ์กฐ์— ๋„ฃ์–ด์•ผ ํ•˜๋Š”๋ฐ, ์ด๋ฏธ ๊ทธ ์ž๋ฃŒ๊ตฌ์กฐ์— ๋“ค์–ด๊ฐ€ ์žˆ๋Š” ํ•™์ƒ์ธ ๊ฒฝ์šฐ, ์ œ์ผ ๋’ท ์ˆœ์„œ๋กœ ๋‹ค์‹œ ์ง‘์–ด๋„ฃ์–ด์•ผ ํ•œ๋‹ค. ์ด ์•„์ด๋””์–ด๋Š”, ์ด ๋ฌธ์ œ๋ฅผ ํ‘ธ๋Š” ๋ˆ„๊ตฌ๋‚˜ ๋– ์˜ฌ๋ ธ์„ํ…๋ฐ ์ƒ๊ฐ๋ณด๋‹ค ๊ฐ„๋‹จํ•˜๊ฒŒ ํ’€๋ฆด ์ค„ ์•Œ์•˜๋Š”๋ฐ ์•„๋‹ˆ์—ˆ๋‹ค. 1๏ธโƒฃ map๊ณผ priority queue ์‚ฌ์šฉ set์„ ์ด์šฉํ•ด์„œ ์ค‘๋ณต์—ฌ๋ถ€๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ์ง€๋งŒ, ์ˆ˜๊ฐ• ์‹ ์ฒญ ์ˆœ์„œ๋ฅผ ํ™•์ธํ•  ์ˆœ ์—†๋‹ค. HashMap map = new HashMap()..

    [JAVA] ๋ฐฑ์ค€ 20366๋ฒˆ ใ€G3.๊ฐ™์ด ๋ˆˆ์‚ฌ๋žŒ ๋งŒ๋“ค๋ž˜?ใ€‘

    ๋ฌธ์ œ 20366๋ฒˆ: ๊ฐ™์ด ๋ˆˆ์‚ฌ๋žŒ ๋งŒ๋“ค๋ž˜? ๋†’์ด๊ฐ€ (2, 5), (3, 5)๋กœ ๊ตฌ์„ฑ๋œ ๋ˆˆ์‚ฌ๋žŒ ๋‘˜์„ ๋งŒ๋“œ๋Š” ๊ฒƒ์ด ์ตœ์ ์˜ ๊ฒฝ์šฐ ์ค‘ ํ•˜๋‚˜์ด๋‹ค. |7-8| = 1 ๋‹ค๋ฅธ ๊ฒฝ์šฐ๋กœ๋Š” (2, 9), (5, 5)๋กœ ๋‘ ๋ˆˆ์‚ฌ๋žŒ์„ ๋งŒ๋“œ๋Š” ๊ฒฝ์šฐ๊ฐ€ ์žˆ๋‹ค. |11-10| = 1 www.acmicpc.net ํ’€์ด 1๏ธโƒฃ ์กฐํ•ฉ์„ ์ด์šฉํ•œ ํ’€์ด ์ฃผ์–ด์ง„ ๋ˆˆ๋ฉ์ด ์ค‘ 2๊ฐœ๋กœ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋Š” ๋ˆˆ์‚ฌ๋žŒ์˜ ๋†’์ด๋ฅผ ๋ชจ๋‘ ๊ตฌํ•œ๋‹ค. ๋‹จ, ๋‘ ์‚ฌ๋žŒ์ด ๊ฐ™์€ ๋ˆˆ๋ฉ์ด๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๋‹ค. ์„œ๋กœ ๋‹ค๋ฅธ ๋ˆˆ๋ฉ์ด 4๊ฐœ๊ฐ€ ์‚ฌ์šฉ๋˜์–ด์•ผ ํ•œ๋‹ค. ๋”ฐ๋ผ์„œ, ๊ทธ๋ƒฅ ํ•ฉ์˜ ์กฐํ•ฉ๋งŒ ๊ตฌํ•˜๋ฉด ์ด๋Ÿฌํ•œ ๋ถ€๋ถ„์„ ์ฒดํฌํ•  ์ˆ˜ ์—†๊ธฐ ๋•Œ๋ฌธ์— ์–ด๋–ค ์ธ๋ฑ์Šค์˜ ๋ˆˆ๋ฉ์ด๋กœ ๋ˆˆ์‚ฌ๋žŒ์„ ๋งŒ๋“ ๊ฑด์ง€ ์ •๋ณด๊ฐ€ ํ•„์š”ํ•˜๋‹ค. ๋”ฐ๋ผ์„œ, ํด๋ž˜์Šค๋ฅผ ์ƒˆ๋กญ๊ฒŒ ํ•˜๋‚˜ ์ •์˜ํ•ด์•ผํ•œ๋‹ค. static class SnowMan{ int idx1; int..

    [Java] 74. Search a 2D Matrix

    ๋ฌธ์ œ ํŒŒ์•… m x n ํ–‰๋ ฌ์ด ์ฃผ์–ด์ง„๋‹ค. ๊ฐ ํ–‰์€ ๋น„๋‚ด๋ฆผ์ฐจ์ˆœ์œผ๋กœ ์ •๋ ฌ๋˜์–ด์žˆ๋‹ค. ๊ฐ ํ–‰์˜ ์ฒซ ์›์†Œ๋Š” ์ด์ „ ํ–‰์˜ ๋งˆ์ง€๋ง‰ ์›์†Œ๋ณด๋‹ค ํฌ๋‹ค. target์ด ํ–‰๋ ฌ์— ์กด์žฌํ•˜๋Š”์ง€ ์ฐพ์•„์•ผํ•œ๋‹ค. ์‹œ๊ฐ„ ๋ณต์žก๋„๋Š” O(log(m*n)) ์œผ๋กœ ์ˆ˜ํ–‰ํ•ด์•ผํ•œ๋‹ค. ํ’€์ด 1๏ธโƒฃ ์ด๋ถ„ ํƒ์ƒ‰ ๐Ÿ’ก ๋– ์˜ค๋ฅธ Idea ํ–‰๋ ฌ ๋‚ด์— ์›์†Œ๊ฐ€ ์กด์žฌํ•˜๋Š”์ง€๋งŒ ํŒ๋‹จํ•˜๋ฉด ๋˜๊ธฐ ๋•Œ๋ฌธ์—, 2์ฐจ์› ํ–‰๋ ฌ์„ 1์ฐจ์›์œผ๋กœ ๋ณ€ํ™˜์‹œํ‚จ ํ›„ ์ด๋ถ„ํƒ์ƒ‰์„ ์ง„ํ–‰ํ•˜๋ฉด ์‹œ๊ฐ„๋ณต์žก๋„ O(log(m*n)) ๋„ ๋งŒ์กฑํ•˜๋ฉด์„œ, ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์„ ๊ฒƒ์ด๋ผ ์ƒ๊ฐ์ด ๋“ค์—ˆ๋‹ค. ๋˜ํ•œ, ๊ฐ ํ–‰ ๋‚ด ์›์†Œ์™€ ํ–‰๋“ค ๋ผ๋ฆฌ ์ •๋ ฌ๋˜์–ด ์žˆ์–ด์„œ ํŽธํ•˜๊ฒŒ ์ด๋ถ„ํƒ์ƒ‰์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์„ ๊ฒƒ์ด๋ผ๊ณ  ํŒ๋‹จํ•˜์˜€๋‹ค. ์œ„ ์•„์ด๋””์–ด๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ, ํŠน์ • ์›์†Œ๋ฅผ ์ฐพ์•„๋‚ด๋Š” ์ด๋ถ„ํƒ์ƒ‰ ์ฝ”๋“œ๋ฅผ ๊ตฌํ˜„ํ•˜์˜€๋‹ค. class Solution { public bool..

    [Java] 35. Search Insert Position

    ๋ฌธ์ œ ํŒŒ์•… ์ค‘๋ณต๋˜์ง€ ์•Š๋Š”, ์ •๋ ฌ๋œ ์ •์ˆ˜ ๋ฐฐ์—ด์ด ์ฃผ์–ด์ง„๋‹ค. target ์— ํ•ด๋‹นํ•˜๋Š” ์›์†Œ์˜ ์œ„์น˜๋‚˜, ์—†๋‹ค๋ฉด ์‚ฝ์ž…ํ–ˆ์„๋•Œ ์ •๋ ฌ์„ ์œ ์ง€ํ•  ์ˆ˜ ์žˆ๋Š” ์ธ๋ฑ์Šค์˜ ์œ„์น˜๋ฅผ ๋ฐ˜ํ™˜ํ•ด์•ผํ•œ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์‹œ๊ฐ„ ๋ณต์žก๋„๋Š” O(logN) ์ด์–ด์•ผ ํ•œ๋‹ค. ํ’€์ด 1๏ธโƒฃ ์ด๋ถ„ ํƒ์ƒ‰ ๐Ÿ’ก ๋– ์˜ค๋ฅธ Idea ์‹œ๊ฐ„ ๋ณต์žก๋„๋ฅผ O(logN) ์œผ๋กœ ํ•ด์•ผํ•œ๋‹ค๋Š” ๋ง์„ ๋ณด์ž๋งˆ์ž, ์ด๋ถ„ํƒ์ƒ‰์œผ๋กœ ํ•ด๊ฒฐํ•ด์•ผ๊ฒ ๊ตฌ๋‚˜ ์ƒ๊ฐ์ด ๋“ค์—ˆ๋‹ค. ์ด๋ถ„ํƒ์ƒ‰์„ ๊ตฌํ˜„ํ•ด์„œ, target ์ด ๋“ค์–ด๊ฐˆ ์ˆ˜ ์žˆ๋Š” ์ ์ ˆํ•œ ์œ„์น˜๋ฅผ ์ฐพ์œผ๋ฉด ๋œ๋‹ค. nums๊ฐ€ ์ •๋ ฌ๋˜์–ด์žˆ๊ธฐ ๋•Œ๋ฌธ์— target์ด nums์˜ ์–ด๋– ํ•œ ์›์†Œ๋ณด๋‹ค ์ž‘๊ฑฐ๋‚˜ ํฐ ๊ฒฝ์šฐ๋Š” ์•ž์„ ์—์„œ ์ฒ˜๋ฆฌํ•ด์ฃผ์—ˆ๋‹ค. ์ด๋ถ„ํƒ์ƒ‰์—์„œ๋Š”, ์ •๋ ฌ์„ ์œ ์ง€ํ•˜๋ฉด์„œ target ๊ฐ’ ์ดํ•˜๋ฅผ ๋ฐฐ์—ด์— ์ž…๋ ฅํ•  ์ˆ˜ ์žˆ๋Š” ์ธ๋ฑ์Šค๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋„๋ก ๊ตฌ์„ฑํ•˜์˜€๋‹ค. class Solution { publ..

    [Java] 21. Merge Two Sorted Lists

    ๋ฌธ์ œ ํŒŒ์•… ์ •๋ ฌ๋œ ๋‘ ์—ฐ๊ฒฐ ๋ฆฌ์ŠคํŠธ์˜ ์ฒซ๋ฒˆ์งธ ๋…ธ๋“œ๋ฅผ ์ž…๋ ฅ๋ฐ›๋Š”๋‹ค. ๋‘ ์—ฐ๊ฒฐ ๋ฆฌ์ŠคํŠธ๋ฅผ ํ•˜๋‚˜์˜ ์ •๋ ฌ๋œ ์—ฐ๊ฒฐ๋ฆฌ์ŠคํŠธ๋กœ ๋งŒ๋“ค์–ด์•ผํ•œ๋‹ค. ๋ฐ˜๋“œ์‹œ ์ž…๋ ฅ๋ฐ›์€ ๋…ธ๋“œ๋กœ ๊ตฌ์„ฑํ•ด์•ผํ•œ๋‹ค. ํ’€์ด 1๏ธโƒฃ ๐Ÿ’ก ๋– ์˜ค๋ฅธ Idea ๊ฐ ๋ฆฌ์ŠคํŠธ์˜ ๊ฐ’์„ ๋น„๊ตํ•˜๊ณ , ์ž‘์€ ๊ฐ’์„ ํฌํ•จํ•˜๋Š” ๋…ธ๋“œ๋ฅผ ์ถ”๊ฐ€ํ•˜๋Š” ์‹์œผ๋กœ ํ•ฉ์น˜๋ฉด ๋œ๋‹ค. ๋‹จ, ๋น„๊ตํ•  ๋…ธ๋“œ๊ฐ€ ์—†์–ด์ง„ ๊ฒฝ์šฐ ๋‚จ์•„์žˆ๋Š” ๋…ธ๋“œ๋ฅผ ์ˆœ์ฐจ์ ์œผ๋กœ ์ถ”๊ฐ€ํ•ด์ฃผ๋ฉด ๋œ๋‹ค. class Solution { public ListNode mergeTwoLists(ListNode list1, ListNode list2) { ListNode head = new ListNode(); ListNode ans = head; ListNode result; while (list1 != null || list2 != null) { if (list..