Deep_Lee
article thumbnail
[JAVA] ์žฌ๊ท€ํ•จ์ˆ˜ ( ๋ฉ”๋ชจ์ด์ œ์ด์…˜ )

์žฌ๊ท€ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์žฌ๊ท€(Revursion) ํ•จ์ˆ˜๋ž€ ํŠน์ • ํ•จ์ˆ˜ ๋‚ด์—์„œ ์ž์‹ ์„ ๋‹ค์‹œ ํ˜ธ์ถœํ•˜์—ฌ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•ด๋‚˜๊ฐ€๋Š” ํ•จ์ˆ˜์ด๋‹ค. ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ์›๋ž˜ ๋ฒ”์œ„์˜ ๋ฌธ์ œ์—์„œ ๋” ์ž‘์€ ๋ฒ”์œ„์˜ ํ•˜์œ„ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•จ์œผ๋กœ์จ ์›๋ž˜ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•ด ๋‚˜๊ฐ€๋Š” ๋ฐฉ์‹์ด๋‹ค. ์ผ๋ฐ˜ ๋ฐ˜๋ณต๋ฌธ์„ ํ†ตํ•ด ๊ตฌํ˜„ ๊ฐ€๋Šฅํ•œ ๊ธฐ๋Šฅ์€ ์žฌ๊ท€ ํ•จ์ˆ˜๋ฅผ ํ†ตํ•ด ๊ตฌํ˜„์ด ๊ฐ€๋Šฅํ•˜๋ฉฐ ๋ฐ˜๋Œ€๋กœ ์žฌ๊ท€ํ•จ์ˆ˜๋กœ ๊ตฌํ˜„ ๊ฐ€๋Šฅํ•œ ๊ธฐ๋Šฅ์„ ๋ฐ˜๋ณต๋ฌธ์œผ๋กœ ๊ตฌํ˜„์ด ๊ฐ€๋Šฅํ•˜๋‹ค. ์žฌ๊ท€ ํ•จ์ˆ˜๋Š” ํ•จ์ˆ˜ ๋‚ด์—์„œ ์ž๊ธฐ ์ž์‹ ์„ ๊ณ„์† ํ˜ธ์ถœํ•˜๋Š” ๋ฐฉ์‹์ด๊ธฐ ๋•Œ๋ฌธ์— ํ•จ์ˆ˜ ์•ˆ์— ๋ฐ˜๋“œ์‹œ ์ข…๋ฃŒ ๊ตฌ๊ฐ„์ด ๋˜๋Š” BaseCase๋ฅผ ์ƒ๊ฐํ•˜์—ฌ ์ฝ”๋“œ๋ฅผ ๊ตฌํ˜„ํ•ด์•ผ ํ•œ๋‹ค. ์•„๋ž˜๋Š” ์ƒ˜ํ”Œ์˜ˆ์ œ์ด๋‹ค. public class Recursion { public static void main(String[] args) { Function(); } public st..

article thumbnail
[JAVA] HashMap

๐Ÿ’กHashMap ์ด๋ž€? HashMap์€ Map ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๊ตฌํ˜„ํ•œ ๋Œ€ํ‘œ์ ์ธ Map ์ปฌ๋ ‰์…˜์ด๋‹ค. Map ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์ƒ์†ํ•˜๊ณ  ์žˆ๊ธฐ์— Map์˜ ์„ฑ์งˆ์„ ๊ทธ๋Œ€๋กœ ๊ฐ€์ง€๊ณ  ๋‹ค. Map์€ ํ‚ค์™€ ๊ฐ’์œผ๋กœ ๊ตฌ์„ฑ๋œ Entry๊ฐ์ฒด๋ฅผ ์ €์žฅํ•˜๋Š” ๊ตฌ์กฐ๋ฅผ ๊ฐ€์ง„ ์ž๋ฃŒ๊ตฌ์กฐ์ด๋‹ค. ์—ฌ๊ธฐ์„œ ํ‚ค์™€ ๊ฐ’์„ ๋ชจ๋‘ ๊ฐ์ฒด์ด๋‹ค. ๊ฐ’์€ ์ค‘๋ณต ์ €์žฅ๋  ์ˆ˜ ์žˆ์ง€๋งŒ, ํ‚ค๋Š” ์ค‘๋ณต์ €์žฅ ๋  ์ˆ˜ ์—†๋‹ค. ๋งŒ์•ฝ ๊ธฐ์กด์— ์ €์žฅ๋œ ํ‚ค์™€ ๋™์ผํ•œ ํ‚ค๋กœ ์ €์žฅํ•˜๋ฉด ๊ธฐ์กด์˜ ๊ฐ’์€ ์—†์–ด์ง€๊ณ  ์ƒˆ๋กœ์šด ๊ฐ’์œผ๋กœ ๋Œ€์น˜๋œ๋‹ค. HashMap์€ ์ด๋ฆ„ ๊ทธ๋Œ€๋กœ ํ•ด์‹ฑ(Hashing)์„ ์‚ฌ์šฉํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋งŽ์€ ์–‘์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฒ€์ƒ‰ํ•˜๋Š” ๋ฐ ์žˆ์–ด์„œ ๋›ฐ์–ด๋‚œ ์„ฑ๋Šฅ์„ ๊ฐ€์ง„๋‹ค. ์œ„ ๊ทธ๋ฆผ๊ณผ ๊ฐ™์ด HashMap์€ ๋‚ด๋ถ€์— 'ํ‚ค'์™€ '๊ฐ’'์„ ์ €์žฅํ•˜๋Š” ์ž๋ฃŒ๊ตฌ์กฐ๋ฅผ ๊ฐ€์ง„๋‹ค. HashMap์€ ํ•ด์‹œ ํ•จ์ˆ˜๋ฅผ ํ†ตํ•ด 'ํ‚ค'์™€'๊ฐ’์ด ์ €์žฅ๋˜๋Š” ์œ„์น˜๋ฅผ..

article thumbnail
[JAVA] ์ด์ง„ํƒ์ƒ‰ ( Binary Search )

๐Ÿ’ก ์ด์ง„ ํƒ์ƒ‰ = ์ด๋ถ„ ํƒ์ƒ‰ ( Binary Search ) ์ •๋ ฌ๋œ ๋ฐฐ์—ด ๋˜๋Š” ๋ฆฌ์ŠคํŠธ์— ์ ํ•ฉํ•œ ๊ณ ์† ํƒ์ƒ‰ ๋ฐฉ๋ฒ• ๋ฐฐ์—ด์˜ ์ค‘์•™์— ์žˆ๋Š” ๊ฐ’์„ ์กฐ์‚ฌํ•˜์—ฌ ์ฐพ๊ณ ์ž ํ•˜๋Š” ํ•ญ๋ชฉ์ด ์™ผ์ชฝ ๋˜๋Š” ์˜ค๋ฅธ์ชฝ ๋ถ€๋ถ„ ๋ฐฐ์—ด์— ์žˆ๋Š”์ง€๋ฅผ ์•Œ์•„๋‚ด์–ด ํƒ์ƒ‰์˜ ๋ฒ”์œ„๋ฅผ ๋ฐ˜์œผ๋กœ ์ค„์ธ๋‹ค. ์ฐพ๊ณ ์ž ํ•˜๋Š” ๊ฐ’์ด ์†ํ•ด์žˆ์ง€ ์•Š์€ ๋ถ€๋ถ„์€ ์ „ํ˜€ ๊ณ ๋ คํ•  ํ•„์š”๊ฐ€ ์—†๊ธฐ ๋•Œ๋ฌธ์—, ๋งค ๋‹จ๊ณ„์—์„œ ๊ฒ€์ƒ‰ํ•ด์•ผ ํ•  ๋ฆฌ์ŠคํŠธ์˜ ํฌ๊ธฐ๋ฅผ ๋ฐ˜์œผ๋กœ ์ค„์ธ๋‹ค. ์ด๋Ÿฌํ•œ ๋ฐฉ๋ฒ•์„ ๋ฐ˜๋ณต์ ์œผ๋กœ ์‚ฌ์šฉํ•ด ํƒ์ƒ‰ํ•˜๋Š” ๋ฐฉ๋ฒ•์ด ์ด์ง„ํƒ์ƒ‰์ด๋‹ค. ๐Ÿ’ก ์ด์ง„ ํƒ์ƒ‰์˜ ๊ตฌํ˜„ 1. ํƒ์ƒ‰์˜ ๋Œ€์ƒ์ด ๋˜๋Š” ์ž๋ฃŒ๋“ค์ด array[low] ์—์„œ๋ถ€ํ„ฐ array[high]์— ๋“ค์–ด์žˆ๋‹ค. ( ์ •๋ ฌ๋˜์–ด์žˆ์–ด์•ผํ•จ ) ์ฆ‰, ์–ด๋–ค ์‹œ์ ์—์„œ ํƒ์ƒ‰๋˜์–ด์•ผ ํ•  ๋ฒ”์œ„๋Š” low~high๊นŒ์ง€๊ฐ€ ๋œ๋‹ค. ๋งจ ์ฒ˜์Œ low์—๋Š” 0๋ฒˆ index์˜ ๊ฐ’, high์—๋Š” n-1๋ฒˆ ..

[JAVA] List : LinkedList

๋‚˜์ค‘์— ์ •๋ฆฌ ์˜ˆ์ •

article thumbnail
[JAVA] List : ArrayList

๐Ÿ’กArrayList ArrayList๋Š” ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์ƒ์†๋ฐ›์€ ํด๋ž˜์Šค๋กœ ํฌ๊ธฐ๊ฐ€ ๊ฐ€๋ณ€์ ์œผ๋กœ ๋ณ€ํ•˜๋Š” ์„ ํ˜•๋ฆฌ์ŠคํŠธ์ด๋‹ค. ์ผ๋ฐ˜์ ์ธ ๋ฐฐ์—ด๊ณผ ๊ฐ™์€ ์ˆœ์ฐจ๋ฆฌ์ŠคํŠธ์ด๋ฉฐ ์ธ๋ฑ์Šค๋กœ ๋‚ด๋ถ€์˜ ๊ฐ์ฒด๋ฅผ ๊ด€๋ฆฌํ•œ๋‹ค๋Š”์ ์ด ์œ ์‚ฌํ•˜์ง€๋งŒ ํ•œ๋ฒˆ ์ƒ์„ฑ๋˜๋ฉด ํฌ๊ธฐ๊ฐ€ ๋ณ€ํ•˜์ง€ ์•Š๋Š” ๋ฐฐ์—ด๊ณผ๋Š” ๋‹ฌ๋ฆฌ ArrayList๋Š” ๊ฐ์ฒด๋“ค์ด ์ถ”๊ฐ€๋˜์–ด ์ €์žฅ ์šฉ๋Ÿ‰(capacity)์„ ์ดˆ๊ณผํ•œ๋‹ค๋ฉด ์ž๋™์œผ๋กœ ๋ถ€์กฑํ•œ ํฌ๊ธฐ๋งŒํผ ์ €์žฅ์šฉ๋Ÿ‰(capacity)๊ฐ€ ๋Š˜์–ด๋‚œ๋‹ค. ArrayList์—์„œ ํŠน์ • ์ธ๋ฑ์Šค์˜ ๊ฐ์ฒด๋ฅผ ์ œ๊ฑฐํ•˜๊ฒŒ ๋˜๋ฉด, ์ œ๊ฑฐํ•œ ๊ฐ์ฒด์˜ ์ธ๋ฑ์Šค๋ถ€ํ„ฐ ๋งˆ์ง€๋ง‰ ์ธ๋ฑ์Šค๊นŒ์ง€ ๋ชจ๋‘ ์•ž์œผ๋กœ 1์นธ์”ฉ ์•ž์œผ๋กœ ์ด๋™ํ•œ๋‹ค. ๊ฐ์ฒด๋ฅผ ์ถ”๊ฐ€ํ•˜๊ฒŒ ๋˜๋ฉด 1์นธ์”ฉ ๋’ค๋กœ ์ด๋™ํ•˜๊ฒŒ ๋œ๋‹ค. ์ธ๋ฑ์Šค ๊ฐ’์„ ์œ ์ง€ํ•˜๊ธฐ ์œ„ํ•ด์„œ ์ถ”๊ฐ€/์‚ญ์ œ ์‹œ ์ „์ฒด ๊ฐ์ฒด๊ฐ€ ์œ„์น˜๋ฅผ ์ด๋™ํ•œ๋‹ค. ๋”ฐ๋ผ์„œ ์žฆ์€ ์›์†Œ์˜ ์ด๋™, ์‚ญ์ œ๊ฐ€ ๋ฐœ์ƒํ•  ๊ฒฝ์šฐ ArrayList..

article thumbnail
[JAVA] StringBuilder

๐Ÿ’ก 1. StringBuilder ์‚ฌ์šฉํ•˜๋Š” ์ด์œ  ๊ธฐ์กด String ํด๋ž˜์Šค์˜ ํ•œ๊ณ„ String ํด๋ž˜์Šค๋Š” ํ•œ๋ฒˆ ์ƒ์„ฑ๋˜๋ฉด ๋ฌธ์ž์—ด์ด ๋ณ€๊ฒฝ๋˜์ง€ ์•Š์œผ๋ฏ€๋กœ ๋ถˆ๋ณ€ํ•œ ์„ฑ์งˆ์„ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค. ๋”ฐ๋ผ์„œ ๊ธฐ์กด ๋ฌธ์ž์—ด์— ์ƒˆ๋กœ์šด ๋ฌธ์ž์—ด์„ ์ถ”๊ฐ€ํ•˜๊ณ ์ž ํ•˜๋Š” ๊ฒฝ์šฐ, ๋ฉ”๋ชจ๋ฆฌ์—์„œ ๋ฌธ์ž์—ด์ด ์ถ”๊ฐ€๋˜๋Š”๊ฒƒ์ด ์•„๋‹ˆ๋ผ, ์ƒˆ๋กœ์šด ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ํ• ๋‹น๋˜์–ด ๋ฌธ์ž์—ด์ด ์ƒ์„ฑ๋œ๋‹ค. ๋”ฐ๋ผ์„œ ๋ฌธ์ž์—ด์˜ ๋ณ€๊ฒฝ์ด ๋นˆ๋ฒˆํ•œ ๊ฒฝ์šฐ StringBuilder ๋ฅผ ํ™œ์šฉํ•ด์•ผ ํ•œ๋‹ค. ์•„๋ž˜์™€ ๊ฐ™์ด String sb="tesrStr";๋กœ ์„ ์–ธํ•˜๊ณ  sb=sb.concat("12");๋ฅผ ์ˆ˜ํ–‰ํ•œ ๊ฒฝ์šฐ, sb ๋ฌธ์ž์—ด์€ ์ƒˆ ์ฃผ์†Œ๊ฐ€ ํ• ๋‹น๋œ๋‹ค. ๋ฌธ์ž์—ด์„ ๋ณ€๊ฒฝํ•  ๋•Œ๋งˆ๋‹ค ์ƒˆ๋กœ์šด ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ํ• ๋‹น๋˜๋Š” ๊ฒƒ์€ ์ž์›๋‚ญ๋น„๊ฐ€ ์ผ์–ด๋‚˜๊ธฐ ๋•Œ๋ฌธ์— StringBuilder๋ฅผ ํ™œ์šฉํ•ด์•ผ ํ•œ๋‹ค. ๐Ÿ’ก 2. StringBuilder Stri..

article thumbnail
[JAVA] ๋ฌธ๋ฒ• : ํ˜•๋ณ€ํ™˜ ์ •๋ฆฌ

๐Ÿ“šJAVA ํ˜•๋ณ€ํ™˜ ๋ชจ์Œ java ํ˜•๋ณ€ํ™˜์ด ๊ณ„์† ์กฐ๊ธˆ์”ฉ ํ—ท๊ฐˆ๋ ค์„œ ๋”ฐ๋กœ ์ •๋ฆฌํ•ฉ๋‹ˆ๋‹ค. String -> int String s="123"; int num=Integer.parseInt(s); /// 123 String s="123"; int num=Integer.valueOf(s); // 123 int -> String null๊ฐ’์ด ๋“ค์–ด์˜ค๋ฉด ์˜ค๋ฅ˜์ผ์œผํ‚จ๋‹ค. int num=123; String s=Integer.toString(num); // "123" null๊ฐ’์ด ๋“ค์–ด์˜ค๋ฉด "null"๋ฐ˜ํ™˜ (๊ถŒ์žฅ) int num=123; String s=String.valueOf(num); // "123" String -> Char String str="string"; str.charAt(1); // t Char -> Strin..

article thumbnail
[JAVA] String method

String ํด๋ž˜์Šค java.lang.String ํด๋ž˜์Šค C์–ธ์–ด์—์„œ๋Š” ๋ฌธ์ž์—ด์„ charํ˜• ๋ฐฐ์—ด๋กœ ํ‘œํ˜„ํ•˜์ง€๋งŒ, ์ž๋ฐ”์—์„œ๋Š” ๋ฌธ์ž์—ด์„ ์œ„ํ•œ String ํด๋ž˜์Šค๋ฅผ ๋ณ„๋„๋กœ ์ œ๊ณตํ•œ๋‹ค. String ํด๋ž˜์Šค์—๋Š” ๋ฌธ์ž์—ด๊ณผ ๊ด€๋ จ๋œ ์ž‘์—…์„ ํ•  ๋•Œ ์œ ์šฉํ•˜๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๋‹ค์–‘ํ•œ ๋ฉ”์†Œ๋“œ๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ๋‹ค. ์ด๋Ÿฌํ•œ String ํด๋ž˜์Šค๋Š” java.lang ํŒจํ‚ค์ง€์— ํฌํ•จ๋˜์–ด ์ œ๊ณต๋œ๋‹ค. String ์ธ์Šคํ„ด์Šค๋Š” ํ•œ๋ฒˆ ์ƒ์„ฑ๋˜๋ฉด ๊ทธ ๊ฐ’์„ ์ฝ๊ธฐ๋งŒ ํ•  ์ˆ˜ ์žˆ๊ณ , ๋ณ€๊ฒฝ ํ•  ์ˆ˜๋Š” ์—†๋‹ค. ์ด๋Ÿฌํ•œ ๊ฐ์ฒด๋ฅผ ์ž๋ฐ”์—์„œ๋Š” ๋ถˆ๋ณ€ ๊ฐ์ฒด(immutable object)๋ผ๊ณ  ํ•œ๋‹ค. ์ฆ‰, ์ž๋ฐ”์—์„œ ๋ง์…ˆ(+)์—ฐ์‚ฐ์ž๋ฅผ ์ด์šฉํ•˜์—ฌ ๋ฌธ์ž์—ด ๊ฒฐํ•ฉ์„ ์ˆ˜ํ–‰ํ•˜๋ฉด, ๊ธฐ์กด ๋ฌธ์ž์—ด์˜ ๋‚ด์šฉ์ด ๋ณ€๊ฒฝ๋˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ๋‚ด์šฉ์ด ํ•ฉ์ณ์ง„ ์ƒˆ๋กœ์šด String ์ธ์Šคํ„ด์Šค๊ฐ€ ์ƒ์„ฑ๋˜๋Š” ๊ฒƒ์ด๋‹ค. charAt(..