Deep_Dev
[JAVA] String.Format() ์ž๋ฆฟ์ˆ˜ ์ฑ„์šฐ๊ธฐ

โœ… String.Format() String์˜ static ๋ฉ”์„œ๋“œ์ธ format ๋ฉ”์„œ๋“œ๋Š” ๋ฌธ์ž์—ด์˜ ํ˜•์‹์„ ์„ค์ •ํ•˜๋Š” ๋ฉ”์„œ๋“œ์ด๋‹ค. โœ… ์ข…๋ฅ˜ %d : 10์ง„์ˆ˜ %s : ๋ฌธ์ž์—ด %f : ์‹ค์ˆ˜ํ˜• %t : ๋‚ ์งœ ์‹œ๊ฐ„ %c : ์œ ๋‹ˆ์ฝ”๋“œ ๋ฌธ์ž %o, %x ( 8์ง„์ˆ˜, 16์ง„์ˆ˜ ) โœ… ์˜ˆ์‹œ int num = 5; String str = String.format("%05d", num); System.out.println(str); // input : 45 // output : 00045 * 10์ง„์ˆ˜๋ฅผ 2์ง„์ˆ˜๋กœ ๋ณ€ํ™˜ํ•ด์„œ ์‚ฌ์šฉํ•ด์•ผํ•˜๋Š”๋ฐ ํŠน์ •ํ•œ ์ž๋ฆฟ์ˆ˜(n)๋ฅผ ๋งž์ถฐ์•ผ ํ•  ๋•Œ int n = 5; String binaryArr = String.format("%" + n + "s", Integer.toBinaryString(arr1[..

article thumbnail
[JAVA] DFS & BFS ์ •๋ฆฌ

๐Ÿ“š DFS & BFS ์ตœ์ข…์ •๋ฆฌ DFS : Depth First Search ๊นŠ์ด ์šฐ์„  ํƒ์ƒ‰ BFS : Breadth First Search ๋„ˆ๋น„ ์šฐ์„  ํƒ์ƒ‰ ๊ทธ๋ž˜ํ”„๋ฅผ ํƒ์ƒ‰ํ•˜๊ธฐ ์œ„ํ•œ ๋Œ€ํ‘œ์ ์ธ ์•Œ๊ณ ๋ฆฌ์ฆ˜ DFS, BFS๋ฅผ ์ดํ•ดํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ์Šคํƒ, ํ, ์žฌ๊ท€๋ฅผ ๋จผ์ € ์•Œ์•„์•ผํ•œ๋‹ค. ํ(Queue) ์Šคํƒ๊ณผ ๋ฐ˜๋Œ€๋กœ FIFO ๊ฐœ๋…์œผ๋กœ ๋จผ์ € ๋“ค์–ด๊ฐ„ ๊ฒƒ์ด ๋จผ์ € ๋‚˜๊ฐ€๋Š” ์ž๋ฃŒ๊ตฌ์กฐ์ด๋‹ค. public class Main{ public static void main(String[] args) { Queue Q = new LinkedList(); Q.offer(1); Q.offer(2); Q.offer(3); Q.poll(); // 1 ์ถœ๋ ฅ Q.offer(4); Q.poll(); // 2 ์ถœ๋ ฅ } } ์ „์—ญ ํด๋ž˜์Šค Node DFS์™€ BF..

[JAVA] ์Šคํƒํ”„๋ ˆ์ž„ & ์žฌ๊ท€ํ•จ์ˆ˜

๐Ÿ“š ์Šคํƒํ”„๋ ˆ์ž„ & ์žฌ๊ท€ํ•จ์ˆ˜ ์Šคํƒ ํ”„๋ ˆ์ž„ ์Šคํƒ ํ”„๋ ˆ์ž„์€ ๋ฉ”๋ชจ๋ฆฌ์˜ ์Šคํƒ์˜์—ญ์€ ํ•จ์ˆ˜์˜ ํ˜ธ์ถœ๊ณผ ๊ด€๊ณ„๋˜๋Š” ์ง€์—ญ๋ณ€์ˆ˜์™€ ๋งค๊ฐœ ๋ณ€์ˆ˜๊ฐ€ ์ €์žฅ๋˜๋Š” ์˜์—ญ์ด๋‹ค. ์Šคํƒ ์˜์—ญ์€ ํ•จ์ˆ˜์˜ ํ˜ธ์ถœ๊ณผ ํ•จ๊ป˜ ํ• ๋‹น๋˜๋ฉฐ, ํ•จ์ˆ˜์˜ ํ˜ธ์ถœ์ด ์™„๋ฃŒ๋˜๋ฉด ์†Œ๋ฉธํ•œ๋‹ค. ํ•จ์ˆ˜๊ฐ€ ํ˜ธ์ถœ๋˜๋ฉด ์Šคํƒ์—๋Š” ํ•จ์ˆ˜์˜ ๋งค๊ฐœ๋ณ€์ˆ˜, ํ˜ธ์ถœ์ด ๋๋‚ ๋’ค ๋Œ์•„๊ฐ€๋Š” ๋ฐ˜ํ™˜ ์ฃผ์†Œ ๊ฐ’, ํ•จ์ˆ˜์—์„œ ์„ ์–ธ๋œ ์ง€์—ญ๋ณ€์ˆ˜ ๋“ฑ์ด ์ €์žฅ๋œ๋‹ค. ์ด๋ ‡๊ฒŒ ์Šคํƒ ์˜์—ญ์— ์ฐจ๋ก€๋Œ€๋กœ ์ €์žฅ๋˜๋Š” ํ•จ์ˆ˜์˜ ํ˜ธ์ถœ ์ •๋ณด๋ฅผ ์Šคํƒ ํ”„๋ ˆ์ž„ ์ด๋ผ๊ณ  ํ•œ๋‹ค. ์Šคํƒ ํ”„๋ ˆ์ž„์„ ํ™œ์šฉํ•˜๋ฉด ํ•จ์ˆ˜์˜ ํ˜ธ์ถœ์ด ๋ชจ๋‘ ๋๋‚œ ๋’ค์— ํ•ด๋‹น ํ•จ์ˆ˜๊ฐ€ ํ˜ธ์ถœ๋˜๊ธฐ ์ด์ „ ์ƒํƒœ๋กœ ๋˜๋Œ์•„๊ฐˆ ์ˆ˜ ์žˆ๋‹ค. ์žฌ๊ท€ํ•จ์ˆ˜ public class Recursive { public static void main(String[] args){ Recursive T = new Recursive(); ..

[JAVA] Comparable & Comparator

๐Ÿ“š Comparable & Comparator - Comparable๊ณผ Comparator๋Š” ๋ชจ๋‘ ์ธํ„ฐํŽ˜์ด์Šค์ด๋‹ค. - ์ฆ‰, ์‚ฌ์šฉํ•˜๊ณ ์ž ํ•œ๋‹ค๋ฉด ์ธํ„ฐํŽ˜์ด์Šค ๋‚ด์— ์„ ์–ธ๋œ ๋ฉ”์†Œ๋“œ๋ฅผ ๋ฐ˜๋“œ์‹œ ๊ตฌํ˜„ ํ•ด์•ผํ•œ๋‹ค. ๋ณดํ†ต Comparable ์ธํ„ฐํŽ˜์ด์Šค์—๋Š” compareTo(T o) ๋ฉ”์†Œ๋“œ ํ•˜๋‚˜๊ฐ€ ์„ ์–ธ๋˜์–ด์žˆ๋‹ค. ์ด๊ฒƒ์€ compareTo ๋ฉ”์†Œ๋“œ๋ฅผ ์žฌ์ •์˜(Override)ํ•ด์•ผ ํ•œ๋‹ค๋Š” ๊ฒƒ์ด๋‹ค. Comparator์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์‚ฌ์šฉํ•˜๋ ค๋ฉด compare ๋ฉ”์†Œ๋“œ๋ฅผ ๊ตฌํ˜„ํ•ด์•ผ ํ•˜๊ณ , Comparable ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์‚ฌ์šฉํ•˜๋ ค๋ฉด compareTo ๋ฉ”์†Œ๋“œ๋ฅผ ๊ตฌํ˜„ํ•ด์•ผํ•œ๋‹ค. โœ… Comparable & Comparator " ๊ฐ์ฒด๋ฅผ ๋น„๊ตํ•  ์ˆ˜ ์žˆ๋„๋ก ๋งŒ๋“ ๋‹ค " Why ? ์›๋ž˜๋Š” byte, int, double ๋“ฑ ๋ถ€๋“ฑํ˜ธ๋ฅผ ํ†ตํ•ด ์‰ฝ๊ฒŒ ๋‘ ๋ณ€์ˆ˜๋ฅผ ๋น„๊ตํ•  ..

article thumbnail
[JAVA][์ž๋ฃŒ๊ตฌ์กฐ] ํŠธ๋ฆฌ์…‹ ( TreeSet )

๐Ÿ“š TreeSet TreeSet TreeSet์€ Set ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๊ตฌํ˜„ํ•œ ํด๋ž˜์Šค๋กœ์จ ๊ฐ์ฒด๋ฅผ ์ค‘๋ณตํ•ด์„œ ์ €์žฅํ•  ์ˆ˜ ์—†๊ณ  ์ €์žฅ ์ˆœ์„œ๊ฐ€ ์œ ์ง€๋˜์ง€ ์•Š๋Š”๋‹ค๋Š” Set์˜ ์„ฑ์งˆ์„ ๊ทธ๋Œ€๋กœ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค. ์ด์ง„ ํƒ์ƒ‰ ํŠธ๋ฆฌ์˜ ๊ตฌ์กฐ๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ๋‹ค. ์ถ”๊ฐ€์™€ ์‚ญ์ œ์—๋Š” ์‹œ๊ฐ„์ด ์กฐ๊ธˆ ๋” ๊ฑธ๋ฆฌ์ง€๋งŒ, ์ •๋ ฌ๊ณผ ๊ฒ€์ƒ‰์— ๋†’์€ ์„ฑ๋Šฅ์„ ๋ณด์ด๋Š” ์ž๋ฃŒ๊ตฌ์กฐ์ด๋‹ค. ์ด์ง„ํƒ์ƒ‰ํŠธ๋ฆฌ์˜ ํ˜•ํƒœ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๊ธฐ์— ๊ธฐ๋ณธ์ ์œผ๋กœ Nature Ordering์„ ์ง€์›ํ•˜๋ฉฐ ์ƒ์„ฑ์ž์˜ ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ Comparator ๊ฐ์ฒด๋ฅผ ์ž…๋ ฅํ•˜์—ฌ ์ •๋ ฌ ๋ฐฉ๋ฒ•์„ ์ž„์˜๋กœ ์ง€์ •ํ•ด์ค„ ์ˆ˜๋„ ์žˆ๋‹ค. ๋ ˆ๋“œ ๋ธ”๋ž™ ํŠธ๋ฆฌ : ๋ถ€๋ชจ๋…ธ๋“œ๋ณด๋‹ค ์ž‘์€ ๊ฐ’์„ ๊ฐ€์ง€๋Š” ๋…ธ๋“œ๋Š” ์™ผ์ชฝ ์ž์‹์œผ๋กœ, ํฐ ๊ฐ’์„ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ๋…ธ๋“œ๋Š” ์˜ค๋ฅธ์ชฝ ์ž์‹์œผ๋กœ ๋ฐฐ์น˜ํ•˜์—ฌ ๋ฐ์ดํ„ฐ์˜ ์ถ”๊ฐ€๋‚˜ ์‚ญ์ œ ์‹œ ํŠธ๋ฆฌ๊ฐ€ ํ•œ์ชฝ์œผ๋กœ ์น˜์šฐ์ณ์ ธ์žˆ์ง€ ์•Š๋„๋ก ๊ท ํ˜•์„ ๋งž์ถ”์–ด์ค€๋‹ค...

article thumbnail
[JAVA] HashSet

HashSet HashSet์ด๋ž€? Set ์ธํ„ฐํŽ˜์ด์Šค์—์„œ ์ง€์›ํ•˜๋Š” ๊ตฌํ˜„ ํด๋ž˜์Šค์ด๋‹ค. ์ˆœ์„œ๋Œ€๋กœ ์ž…๋ ฅ๋˜์ง€ ์•Š๊ณ , ์ผ์ •ํ•˜๊ฒŒ ์œ ์ง€๋˜์ง€ ์•Š๋Š”๊ฒŒ ํŠน์ง•์ด๋‹ค. HashSet์€ null ์š”์†Œ๋„ ํ—ˆ์šฉํ•œ๋‹ค. ์ด ํด๋ž˜์Šค์˜ ๊ฐ€์žฅ ํฐ ํŠน์ง•์€ ์ค‘๋ณต์„ ํ—ˆ์šฉํ•˜์ง€ ์•Š๋Š”๋‹ค๋Š” ๊ฒƒ ์ค‘๋ณต์„ ๊ฑธ๋Ÿฌ๋‚ด๋Š” ๊ณผ์ • HashSet์€ ๊ฐ์ฒด๋ฅผ ์ €์žฅํ•˜๊ธฐ ์ „์— ๋จผ์ € ๊ฐ์ฒด์˜ hashCode()๋ฉ”์†Œ๋“œ๋ฅผ ํ˜ธ์ถœํ•ด์„œ ํ•ด์‹œ ์ฝ”๋“œ๋ฅผ ์–ป์–ด๋‚ธ ๋‹ค์Œ ์ €์žฅ๋˜์–ด ์žˆ๋Š” ๊ฐ์ฒด๋“ค์˜ ํ•ด์‹œ ์ฝ”๋“œ์™€ ๋น„๊ตํ•œ ๋’ค ๊ฐ™์€ ํ•ด์‹œ ์ฝ”๋“œ๊ฐ€ ์žˆ๋‹ค๋ฉด ๋‹ค์‹œ equals() ๋ฉ”์†Œ๋“œ๋กœ ๋‘ ๊ฐ์ฒด๋ฅผ ๋น„๊ตํ•ด์„œ true๊ฐ€ ๋‚˜์˜ค๋ฉด ๋™์ผํ•œ ๊ฐ์ฒด๋กœ ํŒ๋‹จํ•˜๊ณ  ์ค‘๋ณต ์ €์žฅ์„ ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋ฌธ์ž์—ด์„ HashSet์— ์ €์žฅํ•  ๊ฒฝ์šฐ, ๊ฐ™์€ ๋ฌธ์ž์—ด์„ ๊ฐ–๋Š” String๊ฐ์ฒด๋Š” ๋™์ผํ•œ ๊ฐ์ฒด๋กœ ๊ฐ„์ฃผ๋˜๊ณ  ๋‹ค๋ฅธ ๋ฌธ์ž์—ด์„ ๊ฐ–๋Š” String๊ฐ์ฒด๋Š” ๋‹ค๋ฅธ ๊ฐ..

[JAVA][์•Œ๊ณ ๋ฆฌ์ฆ˜] ๊ทธ๋ฆฌ๋”” ์•Œ๊ณ ๋ฆฌ์ฆ˜ ( Greedy Algorithm )

โœ… Greedy Algorithm "๋งค ์„ ํƒ์—์„œ ์ง€๊ธˆ ์ด ์ˆœ๊ฐ„ ๋‹น์žฅ ์ตœ์ ์˜ ๋‹ต์„ ์„ ํƒํ•˜์—ฌ ์ ํ•ฉํ•œ ๊ฒฐ๊ณผ๋ฅผ ๋„์ถœํ•˜์ž"๋ผ๋Š” ๋ชจํ† ๋ฅผ ๊ฐ€์ง„ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๊ทธ๋ฆฌ๋”” ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ ๊ธฐ๋ณธ์ ์œผ๋กœ ๋ฌด์กฐ๊ฑด ํฐ ๊ฒฝ์šฐ๋Œ€๋กœ, ๋ฌด์กฐ๊ฑด ์ž‘์€ ๊ฒฝ์šฐ๋Œ€๋กœ, ๋ฌด์กฐ๊ฑด ๊ธด ๊ฒฝ์šฐ๋Œ€๋กœ, ๋ฌด์กฐ๊ฑด ์งง์€ ๊ฒฝ์šฐ๋Œ€๋กœ ๋“ฑ ๊ทน๋‹จ์ ์œผ๋กœ ๋ฌธ์ œ์— ์ ‘๊ทผํ•ด์•ผ ํ•œ๋‹ค๋Š” ์ ์—์„œ ์ •๋ ฌ(Sort)์ด ํ•จ๊ป˜ ์ด์šฉ๋˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ๋‹ค. Greedy Algorithm ์žฅ์  ํ•ญ์ƒ ์ตœ์ ์˜ ๊ฒฐ๊ณผ๋ฅผ ๋„์ถœํ•˜๋Š” ๊ฒƒ์€ ์•„๋‹ˆ์ง€๋งŒ ์–ด๋Š ์ •๋„ ์ตœ์ ์˜ํ•ด์— ๊ทผ์‚ฌํ•œ ๊ฐ’์„ ๋น ๋ฅด๊ฒŒ ๊ตฌํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ์žฅ์ ์ด ์žˆ๋‹ค. ๋˜ํ•œ ํŠน์ •ํ•œ ์ƒํ™ฉ์— ์žˆ์–ด์„œ๋Š” ๊ทธ๋ฆฌ๋”” ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด ์ตœ์ ์˜ ํ•ด๋ฅผ ๋ณด์žฅํ•  ์ˆ˜ ์žˆ๋‹ค. > ์˜ˆ์‹œ 620์›์ด ์žˆ๋‹ค๋ฉด, 620์› ์ดํ•˜์˜ ๊ฐ€์žฅ ํฐ ์•ก์ˆ˜๊ฐ€ 500์›์งœ๋ฆฌ์ด๋ฏ€๋กœ ๋จผ์ € 500์›์งœ๋ฆฌ ๋™์ „์„ ํ•˜๋‚˜ ์‚ฌ์šฉํ•˜๊ณ , 120์›์ด ๋‚จ๋Š”๋‹ค...

[JAVA] hasNextInt ๋ฉ”์†Œ๋“œ

๐Ÿ“– hasNextInt Scanner์˜ ๊ธฐ๋ณธ ๋ฉ”์†Œ๋“œ hasNextInt๋Š” Scanner์—์„œ ์ •์ˆ˜๋ฅผ ์ž…๋ ฅ๋ฐ›์€ ๊ฒฝ์šฐ true๋ฅผ, ์ •์ˆ˜๋ฅผ ์ž…๋ ฅ๋ฐ›์ง€ ์•Š์€ ๊ฒฝ์šฐ false๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋Š” ๋ฉ”์†Œ๋“œ์ด๋‹ค. ๐Ÿ“Œ ์˜ˆ์ œ 1 ์ œ์ผ ๊ฐ„๋‹จํ•œ ์‚ฌ์šฉ ๋ฐฉ๋ฒ• if ๋ฌธ์„ ์‚ฌ์šฉํ•ด์„œ ์•„๋ž˜์™€ ๊ฐ™์ด kb๊ฐ€ ์ •์ˆ˜๋กœ ๋„˜์–ด๊ฐ€๋Š”์ง€ ํ™•์ธ ํ›„ ์ •์ˆ˜๊ฐ€ ์•„๋‹ˆ๋ฉด "๊ฑฐ์ง“" ๋ฐ˜ํ™˜ // Scanner ๋ณ€์ˆ˜ ์„ ์–ธ Scanner kb = new Scanner(System.in); // if๋ฌธ์„ ์‚ฌ์šฉํ•ด์„œ ์ •์ˆ˜์ธ ๊ฒฝ์šฐ true์ด๋ฏ€๋กœ ์ฐธ์„ ์ถœ๋ ฅ, ์•„๋‹Œ ๊ฒฝ์šฐ false๋ฅผ ์ถœ๋ ฅ if(kb.hasNextInt()) System.out.print("์ฐธ"); else System.out.print("๊ฑฐ์ง“"); ๐Ÿ“Œ ์˜ˆ์ œ 2 while๋ฌธ์— ์กฐ๊ฑด์„ ๊ฑธ์–ด์„œ Scanner๊ฐ€ ์ •์ˆ˜๋กœ ๋„˜์–ด์˜ค์ง€ ์•Š๋Š” ..