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

    [Java] 2. Add Two Numbers

    ๋ฌธ์ œ ํŒŒ์•… ๋น„์–ด์žˆ์ง€ ์•Š์€ ๋‘๊ฐœ์˜ ์—ฐ๊ฒฐ ๋ฆฌ์ŠคํŠธ๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. ์Œ์ˆ˜๊ฐ€ ์•„๋‹Œ ์ •์ˆ˜์˜ ์ˆซ์ž๋ฅผ ์—ญ์ˆœ์œผ๋กœ ์—ฐ๊ฒฐ๋ฆฌ์ŠคํŠธ์— ๋ณด๊ด€๋˜์–ด์žˆ๋‹ค. ex. 342 ์ธ ๊ฒฝ์šฐ ์—ฐ๊ฒฐ๋ฆฌ์ŠคํŠธ์— [2] -> [4] -> [3] ์œผ๋กœ ๊ตฌ์„ฑ ์—ฐ๊ฒฐ๋ฆฌ์ŠคํŠธ๋กœ ํ‘œํ˜„๋˜๋Š” ๋‘ ์ •์ˆ˜์˜ ํ•ฉ์„ ๋™์ผํ•œ ๋ฐฉ์‹์œผ๋กœ ์—ฐ๊ฒฐ๋ฆฌ์ŠคํŠธ๋กœ ๋ฐ˜ํ™˜ํ•ด์•ผํ•œ๋‹ค. ํ’€์ด 1๏ธโƒฃ ๐Ÿ’ก ๋– ์˜ค๋ฅธ Idea l1์˜ val๊ณผ l2์˜ val์„ ๋”ํ•˜๊ณ  10์œผ๋กœ ๋‚˜๋ˆˆ ๋ชซ๊ณผ ๋‚˜๋จธ์ง€๋ฅผ ๊ตฌํ•œ๋‹ค. 10์œผ๋กœ ๋‚˜๋ˆˆ ๋ชซ์€ ๋‹ค์Œ ๋…ธ๋“œ๋“ค์˜ val ํ•ฉ์— ๋”ํ•ด์ฃผ์–ด์•ผ ํ•œ๋‹ค. ๋‚˜๋จธ์ง€๋ฅผ ํ†ตํ•ด ๋…ธ๋“œ ํด๋ž˜์Šค๋ฅผ ๋งŒ๋“ค์–ด ์ด์ „ ๋…ธ๋“œ์˜ next ๋…ธ๋“œ๋กœ ์—ฐ๊ฒฐํ•ด์ค€๋‹ค. ๊ทธ๋ฆฌ๊ณ , l1 ๊ณผ l2์˜ ๊ธธ์ด๊ฐ€ ๋‹ค๋ฅผ ์ˆ˜ ์žˆ๋‹ค. ๋”ฐ๋ผ์„œ, l1 ๊ณผ l2๊ฐ€ ๋‘˜๋‹ค null์ด ์•„๋‹ˆ๋ผ๋ฉด ๋กœ์ง์„ ๊ณ„์† ์ˆ˜ํ–‰ํ•ด์•ผํ•œ๋‹ค. ๋˜ํ•œ, ๋ชซ์œผ๋กœ ๋„˜์–ด์˜จ ๊ฐ’์ด ์žˆ๋Š” ๊ฒฝ์šฐ ๋…ธ๋“œ๋ฅผ ์ถ”๊ฐ€๋กœ ์ƒ์„ฑํ•ด..

    Algorithm ๊ธฐ๋ฒ• ์ •๋ฆฌ

    ๊ณต๊ฐ„ ๋ณต์žก๋„ O(1) ๊ด€๋ จ Array Rotation Algorithm ์ฐธ๊ณ  ์ž๋ฃŒ https://www.geeksforgeeks.org/program-for-array-rotation-continued-reversal-algorithm/ ๊ด€๋ จ ๋ฌธ์ œ https://yinq.tistory.com/239 ๐Ÿ’ก ํ•ต์‹ฌ IDEA 1. ํšŒ์ „ ์‹œ, ๋ฐ€๋ ค๋‚˜๋Š” ๋ถ€๋ถ„๊ณผ ๋ฐ€๋ ค๋‚˜์ง€ ์•Š๋Š” ๋ถ€๋ถ„์œผ๋กœ 2๊ฐœ์˜ ๋ธ”๋Ÿญ์œผ๋กœ ๋‚˜๋ˆˆ๋‹ค. 2. ๊ฐ ๋ธ”๋Ÿญ์„ ์—ญ์ˆœ์œผ๋กœ ๋งŒ๋“ ๋‹ค. 3. ๊ทธ๋ฆฌ๊ณ  ์ „์ฒด ๋ธ”๋Ÿญ์„ ์—ญ์ˆœ์œผ๋กœ ๋งŒ๋“ ๋‹ค. Boyer-Moore ๊ณผ๋ฐ˜์ˆ˜ ํˆฌํ‘œ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ฐธ๊ณ  ์ž๋ฃŒ https://sgc109.github.io/2020/11/30/boyer-moore-majority-vote-algorithm/ ๊ด€๋ จ ๋ฌธ์ œ https://yinq.tistory.co..

    [Java] 141. Linked List Cycle

    ๋ฌธ์ œ ํŒŒ์•… ์—ฐ๊ฒฐ ๋ฆฌ์ŠคํŠธ์˜ ํ—ค๋“œ๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ด ์—ฐ๊ฒฐ ๋ฆฌ์ŠคํŠธ๊ฐ€ ์‚ฌ์ดํด์„ ์ด๋ฃจ๋Š”์ง€ ๊ฒฐ์ •ํ•ด์•ผํ•œ๋‹ค. ํ’€์ด 1๏ธโƒฃ Set ์ž๋ฃŒ๊ตฌ์กฐ๋ฅผ ์ด์šฉํ•œ ํ’€์ด ๐Ÿ’ก ๋– ์˜ค๋ฅธ Idea ๋…ธ๋“œ๋ฅผ set ์ž๋ฃŒ๊ตฌ์กฐ์— ์ž…๋ ฅํ•˜๊ณ , ๋‹ค์Œ ๋…ธ๋“œ๋กœ ์ง„ํ–‰ํ•˜๊ธฐ ์ „์— ์ง„ํ–‰ํ•  ๋…ธ๋“œ๊ฐ€ set์— ์ž…๋ ฅ๋˜์–ด์žˆ๋Š”์ง€ ํ™•์ธํ•œ๋‹ค. ์ง„ํ–‰ํ•  ๋…ธ๋“œ๊ฐ€ set์— ์ž…๋ ฅ๋˜์–ด์žˆ์—ˆ๋‹ค๋ฉด, ์‚ฌ์ดํด์ž„์„ ์•Œ ์ˆ˜ ์žˆ๋‹ค. ์œ„ ์•„์ด๋””์–ด๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜์˜€๋‹ค. public class Solution { public boolean hasCycle(ListNode head) { Set set = new HashSet(); ListNode now = head; set.add(now); while (now != null) { ListNode nextNode = now.next; if (set..

    [Java] 3. Longest Substring Without Repeating Characters

    ๋ฌธ์ œ ํŒŒ์•… ๋ฌธ์ž์—ด s๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. ๋ฌธ์ž๊ฐ€ ๋ฐ˜๋ณต๋˜์ง€ ์•Š๋Š” ๊ฐ€์žฅ ๊ธด ๋ถ€๋ถ„ ๋ฌธ์ž์—ด์„ ๋ฐ˜ํ™˜ํ•ด์•ผํ•œ๋‹ค. ํ’€์ด 1๏ธโƒฃ Queue ๋ฅผ ์ด์šฉํ•œ ํ’€์ด ๐Ÿ’ก ๋– ์˜ค๋ฅธ Idea ๋ฌธ์ž์—ด์„ ์ˆœํšŒํ•˜๋ฉด์„œ, Queue์— ๋ฌธ์ž๋ฅผ ์ž…๋ ฅํ•œ๋‹ค. ๋‹จ, ์ž…๋ ฅํ•˜๊ธฐ ์ „, ์ž…๋ ฅํ•˜๋ ค๋Š” ๋ฌธ์ž๊ฐ€ Queue์— ์ด๋ฏธ ์กด์žฌํ•œ๋‹ค๋ฉด ๊ทธ ๋ฌธ์ž๋ฅผ ์ œ๊ฑฐํ•˜๊ณ  ์ž…๋ ฅํ•œ๋‹ค. ๋งŒ์•ฝ pwwkew ๋ฌธ์ž์—ด์ธ ๊ฒฝ์šฐ ์ฒซ p๋Š” ํ์— ์—†์œผ๋ฏ€๋กœ ํ์— ์ž…๋ ฅํ•œ๋‹ค. Queue = [ p ] ๋‘๋ฒˆ์งธ w๋กœ ์•„์ง ํ์— ์—†์œผ๋ฏ€๋กœ ํ์— ์ž…๋ ฅํ•œ๋‹ค. Queue = [ p, w ] ์„ธ๋ฒˆ์งธ w๋Š” ์ด๋ฏธ ํ์— ์กด์žฌํ•˜๋Š” ๋ฌธ์ž์ด๋ฏ€๋กœ ํ์— ๋ฌธ์ž w๊ฐ€ ์—†์–ด์งˆ๋•Œ๊นŒ์ง€ pop ํ•œ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ž…๋ ฅํ•œ๋‹ค. Queue = [ w ] ... ์ด๋Ÿฐ์‹์œผ๋กœ ์ง„ํ–‰๋˜๋ฉด์„œ ์ค‘๋ณต๋˜๋Š” ๋ฌธ์ž๊ฐ€ ์—†๋Š” ๋ถ€๋ถ„ ๋ฌธ์ž์—ด์ด ํ์— ๊ฐฑ์‹ ๋œ๋‹ค. class Solution ..

    [Java] 209. Minimum Size Subarray Sum

    ๋ฌธ์ œ ํŒŒ์•… ์ •์ˆ˜ ๋ฐฐ์—ด nums ์™€ ์–‘์ˆ˜ target ์ด ์ฃผ์–ด์ง„๋‹ค ๋ถ€๋ถ„ ์ง‘ํ•ฉ์˜ ํ•ฉ์ด target ๊ณผ ๋™์ผํ•˜๊ฑฐ๋‚˜ ์ด์ƒ ๊ฐ’์„ ๊ฐ–๋Š” ์ตœ์†Œ ๊ธธ์ด๋ฅผ ๋ฐ˜ํ™˜ํ•ด์•ผํ•œ๋‹ค. ์—†๋‹ค๋ฉด, 0์„ ๋ฐ˜ํ™˜ํ•œ๋‹ค. ํ’€์ด 1๏ธโƒฃ ํˆฌ ํฌ์ธํ„ฐ ํ’€์ด ๐Ÿ’ก ๋– ์˜ค๋ฅธ Idea ํˆฌํฌ์ธํ„ฐ ๋ฐฉ์‹์œผ๋กœ ๋ถ€๋ถ„ํ•ฉ์„ ๊ตฌํ•˜๋‹ค๊ฐ€, target๊ณผ ๋™์ผํ•˜๊ฑฐ๋‚˜ ๊ทธ ์ด์ƒ ๊ฐ’์ด ๋˜๋ฉด ๊ธฐ๋กํ•œ๋‹ค. ๊ทธ๋ฆฌ๊ณ , ์™ผ์ชฝ ํฌ์ธํ„ฐ๋ฅผ ์˜ฎ๊ธด ๋’ค์— ๋‹ค์‹œ ํƒ์ƒ‰์„ ํ•œ๋‹ค. class Solution { public int minSubArrayLen(int target, int[] nums) { int ans = Integer.MAX_VALUE; int left = 0, right = 0; int sum = 0; while (right = target ์ด ๋˜๋Š” ๋ถ€๋ถ„ ์ฐพ๊ธฐ int find = target + f..

    [Java] 167. Two Sum II - Input Array Is Sorted

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

    [Java] 125. Valid Palindrome

    ๋ฌธ์ œ ํŒŒ์•… ๋ชจ๋“  ๋Œ€๋ฌธ์ž๋ฅผ ์†Œ๋ฌธ์ž๋กœ ๋ณ€ํ™˜ ํ›„, ์ˆซ์ž์™€ ์•ŒํŒŒ๋ฒณ์ด ์•„๋‹Œ ๋ฌธ์ž๋ฅผ ์ œ๊ฑฐํ•œ ๋ฌธ์ž๊ฐ€ ๋’ค๋กœ ์ฝ์—ˆ์„๋•Œ์™€ ์•ž์œผ๋กœ ์ฝ์—ˆ์„๋•Œ๊ฐ€ ๊ฐ™์œผ๋ฉด palindrome ์ด๋ผ๊ณ  ํ•œ๋‹ค. palindrome ์ด ๋งž์œผ๋ฉด true๋ฅผ, ์•„๋‹ˆ๋ฉด false๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋ผ ํ’€์ด 1๏ธโƒฃ StringBuilder ์‚ฌ์šฉ ํ’€์ด ๐Ÿ’ก ๋– ์˜ค๋ฅธ Idea ๋จผ์ €, ๊ณต๋ฐฑ๊ณผ ๋ฌธ์ž ํ˜น์€ ์ˆซ์ž๊ฐ€ ์•„๋‹Œ ๊ฒƒ๋“ค์„ ์ œ๊ฑฐํ•ด์„œ ๋ถ™์ด๋Š” ์ž‘์—…์ด ํ•„์š”ํ•˜๋‹ค. ๊ทธ๋ฆฌ๊ณ , ์—ญ์ˆœ์œผ๋กœ ๋‚˜์—ดํ•œ ๋ฌธ์ž์™€ ๋™์ผํ•œ์ง€ ํ™•์ธํ•ด์„œ palindrome ์ธ์ง€ ํ™•์ธํ•˜๋ฉด ๋  ๊ฒƒ์ด๋‹ค. class Solution { public boolean isPalindrome(String s) { StringBuilder sb = new StringBuilder(); char[] arr = s.toLowerCase().toCha..

    [Java] 55. Jump Game

    ๋ฌธ์ œ ํŒŒ์•… ์ •์ˆ˜ ๋ฐฐ์—ด nums ๊ฐ€ ์ฃผ์–ด์ง€๊ณ , ์ฒซ๋ฒˆ์งธ ์ธ๋ฑ์Šค์—์„œ ์‹œ์ž‘ํ•œ๋‹ค. ์ธ๋ฑ์Šค์— ์ฃผ์–ด์ง„ ๊ฐ’์€ ์ตœ๋Œ€๋กœ ์ ํ”„ํ•  ์ˆ˜ ์žˆ๋Š” ๊ฐ’์ด๋‹ค. ๋งˆ์ง€๋ง‰ ์ธ๋ฑ์Šค์— ๋„๋‹ฌํ•  ์ˆ˜ ์žˆ์œผ๋ฉด true ๋ฅผ ์—†์œผ๋ฉด false๋ฅผ ๋ฐ˜ํ™˜ํ•ด์•ผํ•œ๋‹ค. ํ’€์ด 1๏ธโƒฃ ๋‚ด๊ฐ€ ๋– ์˜ฌ๋ฆฐ ์•„์ด๋””์–ด๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค. ํ˜„์žฌ ์œ„์น˜์—์„œ ๊ฐ€์žฅ ๋ฉ€๋ฆฌ ๋›ธ ์ˆ˜ ์žˆ๋Š” ์ธ๋ฑ์Šค๋ฅผ ํ™•์ธํ•œ๋‹ค. ๋งŒ์•ฝ ๊ฐ€์žฅ ๋ฉ€๋ฆฌ ๋›ธ ์ˆ˜ ์žˆ๋Š” ์œ„์น˜๊ฐ€ ๋ฐฐ์—ด์˜ ๋งˆ์ง€๋ง‰ ์ธ๋ฑ์Šค ( nums.length - 1 ) ์ด์ƒ์ด๋ผ๋ฉด true ๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค. ํ˜„์žฌ ์œ„์น˜์—์„œ ๊ฐ€์žฅ ๋ฉ€๋ฆฌ ๋›ธ ์ˆ˜ ์žˆ๋Š” ์ธ๋ฑ์Šค ๊นŒ์ง€ ์ˆœํšŒํ•˜๋ฉด์„œ, ๋‹ค์Œ์œผ๋กœ ๊ฐ€์žฅ ๋ฉ€๋ฆฌ ๊ฐˆ ์ˆ˜ ์žˆ๋Š” ์ธ๋ฑ์Šค๋ฅผ ์ฐพ๊ณ  ์ด๋™ํ•œ๋‹ค. [2, 3, 1, 1, 4] ๋ฅผ ์˜ˆ์‹œ๋กœ ๋“ค์ž๋ฉด, ํ˜„์žฌ ์œ„์น˜ 0์ธ 2์—์„œ ๊ฐˆ ์ˆ˜ ์žˆ๋Š” ์ธ๋ฑ์Šค๋Š” 1๊ณผ 2์ด๊ณ  ์ธ๋ฑ์Šค 1์€ (1 + 3) = 4๋ฒˆ ์ธ๋ฑ์Šค ๊นŒ..

    [Java] 122. Best Time to Buy and Sell Stock 2

    ๋ฌธ์ œ ํŒŒ์•… i๋‚  ์ฃผ์‹ ๊ฐ€๊ฒฉ์€ prices[i] ๊ณผ ๊ฐ™์ด ๋ฐฐ์—ด ํ˜•ํƒœ๋กœ ์ฃผ์–ด์ง„๋‹ค. ๋งค์ผ ์ฃผ์‹์„ ์‚ด์ง€ ํŒ”์ง€ ๊ฒฐ์ •ํ•ด์•ผํ•œ๋‹ค. ๊ฒฐ๊ณผ์ ์œผ๋กœ ์–ป์–ด์ง€๋Š” ์ตœ๋Œ€ ์ˆ˜์ต์„ ๋ฐ˜ํ™˜ํ•ด์•ผํ•œ๋‹ค. ํ’€์ด 1๏ธโƒฃ ๋‚ด๋ฆผ ์ฐจ์ˆœ์œผ๋กœ ๋ฐ”๋€Œ๋Š” ์ˆœ๊ฐ„ ์ˆ˜์ต ๊ณ„์‚ฐ ํ’€์ด๊ฐ€ ์ž˜ ๋– ์˜ค๋ฅด์ง€ ์•Š์•„์„œ ๋ช‡ ๊ฐ€์ง€ ์˜ˆ์‹œ๋ฅผ ๋“ค์–ด๋ดค๋‹ค. Case 1. 1, 6, 7, 100 ์œ„ ๊ฒฝ์šฐ๋Š” 1์— ์‚ฌ์„œ 6์— ํŒ”๊ณ  7์— ์‚ฌ์„œ 100์— ํŒ”๋ฉด, 1์— ์‚ฌ์„œ 100์— ํŒŒ๋Š”๊ฒƒ๋ณด๋‹ค ์†ํ•ด์ด๋‹ค. 6~7 ์— ๊ณต๋ฐฑ์ด ์ƒ๊ธฐ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. Case 2. 1, 6, 5, 100 ์œ„ ๊ฒฝ์šฐ๋Š” 1์— ์‚ฌ์„œ 6์— ํŒ”๊ณ , 5์— ์‚ฌ์„œ 100์— ํŒ”๋ฉด, 1์— ์‚ฌ์„œ 100์— ํŒŒ๋Š” ๊ฒƒ๋ณด๋‹ค ์ด๋“์ด๋‹ค. 5~6 ๊ต์ง‘ํ•ฉ ๋ถ€๋ถ„์ด ์ƒ๊ฒจ ์ถ”๊ฐ€์ ์ธ ์ด๋“์ด ๋  ์ˆ˜ ์žˆ๋‹ค. Case 3. 1, 6, 6, 100 ์œ„ ๊ฒฝ์šฐ๋Š” 1์— ์‚ฌ์„œ 6์— ํŒ”๊ณ  6์—..

    [Java] 121. Best Time to Buy and Sell Stock

    ๋ฌธ์ œ ํŒŒ์•… i๋‚  ์ฃผ์‹ ๊ฐ€๊ฒฉ์€ prices[i] ๊ณผ ๊ฐ™์ด ๋ฐฐ์—ด ํ˜•ํƒœ๋กœ ์ฃผ์–ด์ง„๋‹ค. ์ตœ๋Œ€๋กœ ์ˆ˜์ต์„ ๋ฐ˜ํ™˜ํ•ด์•ผํ•œ๋‹ค. ๋งŒ์•ฝ, ์–ด๋– ํ•œ ์ˆ˜์ต๋„ ์–ป์ง€ ๋ชปํ•œ๋‹ค๋ฉด 0 ์„ ๋ฐ˜ํ™˜ํ•œ๋‹ค. ํ’€์ด 1๏ธโƒฃ ์ด์ค‘ for๋ฌธ ํ’€์ด - ์‹œ๊ฐ„ ์ดˆ๊ณผ ๊ฐ€์žฅ ๋จผ์ € ๋– ์˜ค๋ฅธ ํ’€์ด๋Š”, ํŒŒ๋Š” ๋‚ ์„ ๊ณ ์ •ํ•˜๊ณ  ํŒŒ๋Š” ๋‚  ์ด์ „์˜ ๊ฐ€๊ฒฉ๋“ค์„ ์ˆœํšŒํ•˜๋ฉด์„œ ์ตœ๋Œ“๊ฐ’์„ ๊ตฌํ•ด์•ผ๊ฒ ๋‹ค๊ณ  ์ƒ๊ฐํ–ˆ๋‹ค. class Solution { public int maxProfit(int[] prices) { int ans = 0; for (int i = 1; i < prices.length; i++) { int sell = prices[i]; for (int j = 0; j < i; j++) { int buy = prices[j]; int profit = sell - buy; if (profit ..

    [Java] 189. Rotate Array

    ๋ฌธ์ œ ํŒŒ์•… ์ •์ˆ˜ ๋ฐฐ์—ด nums ๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. ์Œ์ˆ˜๊ฐ€ ์•„๋‹Œ k ๋งŒํผ ์˜ค๋ฅธ์ชฝ์œผ๋กœ ๋ฐฐ์—ด์„ ํšŒ์ „์‹œ์ผœ์•ผ ํ•œ๋‹ค. ํ’€์ด 1๏ธโƒฃ ๋ฐฐ์—ด 2๊ฐœ๋ฅผ ์ด์šฉํ•œ ํ’€์ด ๋จผ์ €, ์ž…๋ ฅ์œผ๋กœ ์ฃผ์–ด์ง„ k๋ฅผ ํ•œ๋ฒˆ ์ „์ฒ˜๋ฆฌ ํ•ด์•ผํ•œ๋‹ค. ์™œ๋ƒํ•˜๋ฉด, ๊ธธ์ด๊ฐ€ N์ธ ๋ฐฐ์—ด nums๋ฅผ N๋ฒˆ rotate ํ•˜๋ฉด ์›์ƒํƒœ๋กœ ๋Œ์•„์˜ค๊ธฐ ๋•Œ๋ฌธ์— k๋ฅผ N์œผ๋กœ ๋‚˜๋ˆˆ ๋‚˜๋จธ์ง€๋งŒํผ๋งŒ rotate ํ•œ๋‹ค๊ณ  ๋ณผ ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ๊ทธ๋Ÿฌ๋ฉด, ์ด๋™์‹œํ‚ฌ ์›์†Œ์˜ ๊ฐœ์ˆ˜๋Š” k%N ๊ฐœ๊ฐ€ ๋œ๋‹ค. ์ด๋™ ์‹œํ‚ฌ ๋ถ€๋ถ„์„ tmp๋ผ๋Š” ๋ฐฐ์—ด์„ ์ •์˜ํ•ด์„œ ๋‚ด์šฉ์„ ๋ณต์‚ฌํ•ด๋‘”๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋’ค์—์„œ๋ถ€ํ„ฐ ์ด๋™์‹œํ‚จ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋ณด๊ด€ํ•ด๋‘์—ˆ๋˜ ๋‚ด์šฉ์„ ์•ž์— ๋ถ™์—ฌ์ฃผ๋ฉด ๋œ๋‹ค. class Solution { public void rotate(int[] nums, int k) { int N = nums.length; k = k % N; int..

    [Java] 169. Majority Element

    ๋ฌธ์ œ ํŒŒ์•… ํฌ๊ธฐ๊ฐ€ n์ธ ๋ฐฐ์—ด nums ๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. n/2 ๋ณด๋‹ค ๋งŽ์ด ๋“ฑ์žฅํ•˜๋Š” ์ˆ˜๋ฅผ ๋ฐ˜ํ™˜ํ•ด์•ผํ•œ๋‹ค. ํ’€์ด 1๏ธโƒฃ ํ•ด์‹œ ํ™œ์šฉ ๋ฐ”๋กœ ๊ฐ„๋‹จํ•˜๊ฒŒ ๋– ์˜ค๋ฅธ ํ’€์ด์ด๋‹ค. ๋จผ์ €, ๋ฐฐ์—ด์„ ์ˆœํšŒํ•˜๋ฉด์„œ ์›์†Œ๋ฅผ key ๊ฐ’์œผ๋กœ ์›์†Œ๊ฐ€ ๋‚˜ํƒ€๋‚œ ํšŸ์ˆ˜๋ฅผ value ๊ฐ’์œผ๋กœ map์— ๊ธฐ๋กํ•œ ๋’ค, map์„ ํ•œ๋ฒˆ ๋” ์ˆœํšŒํ•˜๋ฉด์„œ, ๋‚˜ํƒ€๋‚œ ํšŸ์ˆ˜๊ฐ€ n/2 ๋ณด๋‹ค ํฐ ๊ฒฝ์šฐ ๋ฐ˜ํ™˜ํ•˜๋Š” ๋ฐฉ์‹์ด๋‹ค. import java.util.*; class Solution { public int majorityElement(int[] nums) { int n = nums.length; int result = nums[0]; HashMap map = new HashMap(); for (int num : nums) { map.put(num, map.getOrDefault(n..

    [Java] 80. Remove Duplicates from Sorted Array II

    ๋ฌธ์ œ ํŒŒ์•… nums ๋Š” ๋น„๋‚ด๋ฆผ์ฐจ์ˆœ ์ •์ˆ˜ ๋ฐฐ์—ด์ด๋ฉฐ, ์ตœ๋Œ€ 2๊ฐœ๊นŒ์ง€ ์ค‘๋ณต๋  ์ˆ˜ ์žˆ๋„๋ก ๋‚˜๋จธ์ง€ ์ค‘๋ณต์€ ์ œ๊ฑฐํ•ด์•ผํ•œ๋‹ค. ๊ทธ๋ฆฌ๊ณ , ์ƒ๋Œ€์ ์ธ ์œ„์น˜๋ฅผ ์œ ์ง€ํ•ด์•ผํ•œ๋‹ค. ์ฃผ์–ด์ง„ ์กฐ๊ฑด์— ๋งž๊ฒŒ ์ค‘๋ณต์„ ์ œ๊ฑฐํ•œ ์›์†Œ์˜ ๊ฐœ์ˆ˜ k๋ฅผ ๋ฐ˜ํ™˜ํ•ด์•ผํ•œ๋‹ค. nums ๋ฐฐ์—ด ์™ธ ๋‹ค๋ฅธ ๋ฐฐ์—ด์„ ์‚ฌ์šฉํ•˜๋ฉด ์•ˆ๋œ๋‹ค. ํ’€์ด 1๏ธโƒฃ ํฌ์ธํ„ฐ ๋ฐฉ์‹ nums ๋ฐฐ์—ด๋งŒ ์‚ฌ์šฉํ•ด์•ผํ•˜๊ธฐ ๋•Œ๋ฌธ์—, nums ๋ฐฐ์—ด์˜ ์›์†Œ๋“ค์„ ๊ฐฑ์‹ ํ•ด๋‚˜๊ฐ€๋ฉฐ ์ค‘๋ณต์„ ์ตœ๋Œ€ 2๊ฐœ๊นŒ์ง€ ํ—ˆ์šฉํ•˜๋ฉด์„œ ์ค‘๋ณต์„ ์ œ๊ฑฐํ•ด์•ผ๊ฒ ๋‹ค๊ณ  ์ƒ๊ฐํ–ˆ๋‹ค. ๋จผ์ €, ๊ฐฑ์‹ ํ•  ์ˆ˜ ์žˆ๋Š” ์กฐ๊ฑด์ด ๋ญ”์ง€ ์ƒ๊ฐํ•ด๋ดค๋‹ค. ์›์†Œ๊ฐ€ ๋‹ฌ๋ผ์ง€๋Š” ์ˆœ๊ฐ„ ๊ฐฑ์‹ ํ•˜๊ณ  ํฌ์ธํ„ฐ๋ฅผ ์ด๋™ ์›์†Œ๊ฐ€ ๊ฐ™์€ ๊ฒฝ์šฐ ์ค‘๋ณต๋œ ์›์†Œ๊ฐ€ 2๊ฐœ๊นŒ์ง€๋Š” ํ—ˆ์šฉ๋˜๋ฏ€๋กœ, 2๊ฐœ๊นŒ์ง€๋Š” ๊ฐฑ์‹ ํ•˜๊ณ  ํฌ์ธํ„ฐ๋ฅผ ์ด๋™ ๋‹จ, 3๊ฐœ๋ถ€ํ„ฐ๋Š” ๊ฐฑ์‹ ํ•˜์ง€ ์•Š๊ณ  ์›์†Œ๊ฐ€ ๋‹ฌ๋ผ์ง€๋Š” ์ˆœ๊ฐ„๊นŒ์ง€ ํฌ์ธํ„ฐ๋ฅผ ์›€์ง์ผ ์ˆ˜ ์—†์Œ ์œ„ ์กฐ๊ฑด์„ ๋จผ์ € ์ƒ๊ฐ..

    [Java] 26. Remove Duplicates from Sorted Array

    ๋ฌธ์ œ ํŒŒ์•… nums๋Š” ๋น„๋‚ด๋ฆผ์ฐจ์ˆœ ๋ฐฐ์—ด์ด๋‹ค. ์ค‘๋ณต๋˜๋Š” ์›์†Œ๋“ค์„ 1๊ฐœ์˜ ์›์†Œ๋“ค๋กœ ๋ฐ”๊พธ๊ณ , ์ƒ๋Œ€์ ์ธ ์œ„์น˜๋Š” ์œ ์ง€ํ•ด์•ผํ•œ๋‹ค. ์ฆ‰, [1, 1, 2, 2, 3] ์ธ ๊ฒฝ์šฐ, [1, 2, 3, _, _ ] ์œผ๋กœ ๋งŒ๋“ค์–ด์•ผ ํ•œ๋‹ค๋Š” ๊ฒƒ์ด๋‹ค. ๊ทธ๋ฆฌ๊ณ , ์ค‘๋ณต์„ ์ œ๊ฑฐํ•œ ์ˆ˜์˜ ๊ฐœ์ˆ˜ k๋ฅผ ๋ฐ˜ํ™˜ํ•ด์•ผํ•œ๋‹ค. ํ’€์ด 1๏ธโƒฃ ํฌ์ธํ„ฐ ๋ฐฉ์‹ ๋จผ์ €, unique ํ•œ ์›์†Œ๋ฅผ ๊ฐฑ์‹ ํ•˜๊ธฐ ์œ„ํ•œ ํฌ์ธํ„ฐ๊ฐ€ ํ•„์š”ํ•˜๋‹ค๋Š” ์ƒ๊ฐ์„ ํ–ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ , ๋ฐฐ์—ด nums ๋ฅผ ์ˆœํšŒํ•˜๋ฉด์„œ ๊ฐ’์ด ๋‹ฌ๋ผ์ง€๋Š” ์ธ๋ฑ์Šค๋ฅผ ๋จผ์ € ์ถ”์ถœํ•ด๋ด์•ผ๊ฒ ๋‹ค๊ณ  ์ƒ๊ฐํ–ˆ๋‹ค. for(int i=1; i

    [Java] 27. Remove Element

    ๋ฌธ์ œ ํŒŒ์•… ์ •์ˆ˜ ๋ฐฐ์—ด nums์™€ val์ด ์ฃผ์–ด์ง„๋‹ค. ๋ฐฐ์—ด nums ์—์„œ val๊ณผ ์ผ์น˜ํ•˜๋Š” ์›์†Œ๋ฅผ ๋ชจ๋‘ ์ œ๊ฑฐํ•ด์•ผํ•œ๋‹ค. ๊ทธ๋ฆฌ๊ณ  nums ๋ฐฐ์—ด์—์„œ val๊ณผ ์ผ์น˜ํ•˜์ง€ ์•Š๋Š” ์›์†Œ์˜ ๊ฐœ์ˆ˜๋ฅผ ๋ฐ˜ํ™˜ํ•ด์•ผํ•œ๋‹ค. ์ผ์น˜ํ•˜์ง€ ์•Š๋Š” ์›์†Œ์˜ ๊ฐœ์ˆ˜๊ฐ€ k ์ผ ๋•Œ, nums์˜ k๋ฒˆ ์ธ๋ฑ์Šค ๊นŒ์ง€๋Š” val๊ณผ ์ผ์น˜ํ•˜์ง€ ์•Š๋Š” ์›์†Œ๋“ค๋กœ ์ฑ„์›Œ๋„ฃ์–ด์•ผ ํ•œ๋‹ค. ํ’€์ด 1๏ธโƒฃ Arrays.sort() ์‚ฌ์šฉ ๋จผ์ €, ๋ฌธ์ œ ์กฐ๊ฑด์„ ๋ณด๋‹ˆ nums ๋ฐฐ์—ด์˜ ์›์†Œ ์ตœ๋Œ“๊ฐ’์€ 50์ž„์„ ์•Œ ์ˆ˜ ์žˆ์—ˆ๋‹ค. ๋”ฐ๋ผ์„œ, nums ๋ฐฐ์—ด์—์„œ val๊ณผ ์ผ์น˜ํ•˜๋Š” ์›์†Œ๋ฅผ 51๋กœ ๋ชจ๋‘ ๋ณ€ํ™˜ํ•ด๋‘๊ณ  ์ •๋ ฌ์„ ์ˆ˜ํ–‰ํ•˜๋ฉด, ๋ฐฐ์—ด์˜ ๋’ท๋ถ€๋ถ„์œผ๋กœ ๋ฐ€๋ ค๋‚˜ ์žˆ์„ ๊ฒƒ์œผ๋กœ ์˜ˆ์ƒํ–ˆ๋‹ค. import java.util.*; class Solution { public int removeElement(int[] nums, ..