algorithm 6

[LeetCode] Remove Element๋ฌธ์ œ์˜ Reference์— ๊ด€ํ•˜์—ฌ

์˜ค๋žœ๋งŒ์— leetCode easy ๋‹จ๊ณ„๋ฅผ ํ‘ธ๋Š” ๋„์ค‘์— stream์— ๊ด€๋ จํ•œ(stream์ธ์ง€ .toArray์ธ์ง€ ๋ชจ๋ฅด๊ฒ ๊ตฐ์š”.) ์žฌ๋ฐŒ์žˆ๋Š” ์‚ฌ์‹ค(์ €๋งŒ ๋ชฐ๋ž๊ฒ ์ฃ ..? )์„ ๋ฐœ๊ฒฌํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด์— ๊ด€ํ•ด ๊ธ€์„ ์ž‘์„ฑํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. leetcode ๋ฌธ์ œ ๋งํฌ์ž…๋‹ˆ๋‹ค. ๋ฌธ์ œ class Solution { public void static main(String[args){ int nums[] = new int[]{3,2,2,3}; int val = 3; removeElement(nums, val); ... // nums ๊ฒ€์‚ฌ for (int i = 0; i < expectedNums[i].length; i++) { assert nums[i] == expectedNums[i]; } } // logic ๊ตฌํ˜„ public int r..

Languages/java 2022.03.27

[Algorithm]์ด์ง„ํƒ์ƒ‰(Binary Search)

์ด์ง„ํƒ์ƒ‰(Binary Search) ์ •๋ ฌ๋œ ์ƒํƒœ์˜ ์ž…๋ ฅ ๋ฐ์ดํ„ฐ์— ๋Œ€ํ•œ ํšจ๊ณผ์ ์ธ ํƒ์ƒ‰ ๋ฐฉ๋ฒ• ์˜ค๋ฆ„์ฐจ์ˆœ ํƒ์ƒ‰ ๋ฐฉ๋ฒ• ๋ฐฐ์—ด์˜ ๊ฐ€์šด๋ฐ ์›์†Œ A[x]์™€ ํƒ์ƒ‰ํ‚ค y๋ฅผ ๋น„๊ต. 1) ํƒ์ƒ‰ํ‚ค = ๊ฐ€์šด๋ฐ ์›์†Œ -> ํƒ์ƒ‰ ์„ฑ๊ณต(์ธ๋ฑ์Šค x)๋ฅผ ๋ฐ˜ํ™˜ ํ›„ ์ข…๋ฃŒ 2) ํƒ์ƒ‰ํ‚ค &#39;์ด์ง„ ํƒ์ƒ‰(์›๋ž˜ ํฌ๊ธฐ 1/2์ธ ์™ผ์ชฝ ๋ถ€๋ถ„ ๋ฐฐ์—ด) &#39;: ์ˆœํ™˜ํ˜ธ์ถœ 3) ํƒ์ƒ‰ํ‚ค &#39;์ด์ง„ ํƒ์ƒ‰(์›๋ž˜ ํฌ๊ธฐ 1/2์ธ ์˜ค๋ฅธ์ชฝ ๋ถ€๋ถ„ ๋ฐฐ์—ด) &#39;: ์ˆœํ™˜ํ˜ธ์ถœ ์˜ˆ์ œ T(n) = T(n/2) + O(1) (n > 1), T(1) = 1 T(n) = O(logn) ํŠน์ง• ๋ฐฐ์—ด์˜ ๋ฐ์ดํ„ฐ๊ฐ€ ์ •๋ ฌ๋œ ๊ฒฝ์šฐ์—๋งŒ ์ ์šฉ. ์‚ฝ์ž… / ์‚ญ์ œ ์—ฐ์‚ฐ์€ ๋ถ€๊ฐ€์ ์ธ ๋ฐ์ดํ„ฐ ์ด๋™์„ ์ˆ˜๋ฐ˜. ๋ฐ์ดํ„ฐ์˜ ์ •๋ ฌ ์ƒํƒœ ์œ ์ง€๋ฅผ ์œ„ํ•ด์„œ ํ‰๊ท  n/2๊ฐœ์˜ ๋ฐ์ด..

CS 2022.02.24

[Algorithm]์ ๊ทผ์„ฑ๋Šฅ ํ‘œ๊ธฐ๋ฒ•(Asymptotic Notation)

๊ณ„์† ๋Š๊ปด์˜ค๊ณ  ์ƒ๊ฐํ–ˆ๋˜ ์•Œ๊ณ ๋ฆฌ์ฆ˜๊ณผ OS, ํ•˜๋“œ์›จ์–ด ๋“ฑ์— ๋Œ€ํ•œ ์ „๋ฐ˜์ ์ธ ์ง€์‹์˜ ๋ถ€์กฑํ•จ์œผ๋กœ ์ด๋ฒˆ์— ๋ฐฉํ†ต๋Œ€์— ์ž…ํ•™์„ ๊ฒฐ์ •ํ•˜๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๊ธ‰ํ•˜๊ฒŒ ์‹ ์ฒญํ•˜๋Š๋ผ ์ถ”๊ฐ€๋ชจ์ง‘์œผ๋กœ 3ํ•™๋…„ ์ปดํ“จํ„ฐ๊ณผํ•™์œผ๋กœ ํŽธ์ž…ํ•˜๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ผ๊ณผ ๋™์‹œ์— ํ•™์—…์„ ์ˆ˜ํ–‰ํ•ด์•ผํ•ด์„œ ์‹œ๊ฐ„์ด ๋น ๋“ฏํ•  ๋“ฏ ํ•˜์ง€๋งŒ ๊ทธ๋ž˜๋„ ํ‰์†Œ์— ๊ณ„์† ๋Š๊ปด์™”๋˜ ๋ถ€์กฑํ•จ์„ ๋ฉ”๊พธ๊ธฐ ์œ„ํ•ด์„œ ์—ด์‹ฌํžˆ ํ•ด ๋ณด๋ ค ํ•ฉ๋‹ˆ๋‹คใ…Žใ…Ž ์šฐ์„  ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๊ณผ๋ชฉ ์ˆ˜๊ฐ•์„ ํ†ตํ•ด ์กฐ๊ธˆ ๋” ์ฒด๊ณ„์ ์œผ๋กœ ๋ฌธ์ œ ํ•ด๊ฒฐ ๋Šฅ๋ ฅ์„ ํ‚ค์šฐ๊ณ  ๋ง‰ํ˜”๋˜ ๋ช‡๋ช‡ ํ”„๋กœ๊ทธ๋žจ๋จธ์Šค 2๋‹จ๊ณ„์™€ leetcode easy ๋ฌธ์ œ๋“ค์„ ๋‹ค์‹œ ๋„์ „ํ•  ์ƒ๊ฐ์ž…๋‹ˆ๋‹ค. Big O ์ ๊ทผ์  ์ƒํ•œ ์–ด๋–ค ์–‘์˜ ์ƒ์ˆ˜ c์™€ n0์ด ์กด์žฌํ•˜์—ฌ ๋ชจ๋“  n >= n0 ์— ๋Œ€ํ•˜์—ฌ f(n) = n0 ์— ๋Œ€ํ•˜์—ฌ f(n) = n0 ์— ๋Œ€ํ•˜์—ฌ c1 * g(n)

CS 2022.02.20

[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค](level 2)ํ”ผ๋ณด๋‚˜์น˜์˜ ์ˆ˜

ํ”ผ๋ณด๋‚˜์น˜์˜ ์ˆ˜ Before we go further ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค 1๋ ˆ๋ฒจ์„ ์–ด๋Š์ •๋„ ํ’€๊ณ  ๋ ˆ๋ฒจ 2๋ฅผ ํ’€๊ธฐ์œ„ํ•ด ๋ช‡ ๋ฌธ์ œ๋“ค์„ ๋ณด์•˜์Šต๋‹ˆ๋‹ค. ์ด๋•Œ๋ถ€ํ„ฐ ์ €์˜ ์ขŒ์ ˆ์ด ์‹œ์ž‘๋œ ๋“ฏ ํ•ฉ๋‹ˆ๋‹คใ…Žใ…Ž ๋„ˆ๋ฌด ์–ด๋ ต๋”๊ตฐ์š”... ๊ทธ๋ž˜์„œ ์ฃผ๋ณ€์— ์˜๊ฒฌ์„ ๋ฌผ์–ด๋ณด๋‹ˆ ์–ด๋Š์ •๋„ ์•Œ๊ณ ๋ฆฌ์ฆ˜์— ๋Œ€ํ•œ ์ง€์‹์ด ์—†๋‹ค๋ฉด ํ’€๊ธฐ ์–ด๋ ต๋‹ค๊ณ  ํ•˜๋”๊ตฐ์š”. ๊ทธ๋ž˜์„œ ์ œ๋Œ€๋กœ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ๊ณต๋ถ€ํ•˜๋ฉด์„œ ํ’€๊ณ ์ž ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ๋ ˆ๋ฒจ 2 ๋ฌธ์ œ ํ”ผ๋ณด๋‚˜์น˜์˜ ์ˆ˜์— ๋Œ€ํ•ด ์ž‘์„ฑํ•˜๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ํ”ผ๋ณด๋‚˜์น˜์˜ ์ˆ˜ ์—ญ์‚ฌ์™€ ๊ฐ™์€ ๊ฒƒ๋“ค์€ ๋”ฐ๋กœ ์ž‘์„ฑํ•˜์ง€ ์•Š๊ฒ ์Šต๋‹ˆ๋‹ค. ์•„๋ž˜์˜ Refernce์˜ ์œ„ํ‚ค ๋งํฌ๋ฅผ ํƒ€๊ณ  ๊ฐ€์‹œ๋ฉด ์ž์„ธํžˆ ์•Œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ ๊นŠ์ด ์žˆ๊ฒŒ ์ •๋ฆฌํ•˜๋Š” ๊ฒƒ ์—ญ์‹œ ๋„˜์–ด๊ฐ€๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ํ˜„์žฌ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๊ณ  ์‚ฌ์šฉํ•˜๋Š” ์ˆ˜์ค€ ์ •๋„๋กœ๋งŒ ์ •๋ฆฌํ•˜๊ณ  ๋„˜์–ด๊ฐ€๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ์™œ๋ƒํ•˜๋ฉด ๊นŠ์ด ์žˆ๊ฒŒ ๋“ค์–ด๊ฐ€๋Š” ์ˆœ๊ฐ„ ๋„ˆ..

CS 2022.01.10
728x90
๋ฐ˜์‘ํ˜•