โ 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[..
๐ 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..
๐ ์คํํ๋ ์ & ์ฌ๊ทํจ์ ์คํ ํ๋ ์ ์คํ ํ๋ ์์ ๋ฉ๋ชจ๋ฆฌ์ ์คํ์์ญ์ ํจ์์ ํธ์ถ๊ณผ ๊ด๊ณ๋๋ ์ง์ญ๋ณ์์ ๋งค๊ฐ ๋ณ์๊ฐ ์ ์ฅ๋๋ ์์ญ์ด๋ค. ์คํ ์์ญ์ ํจ์์ ํธ์ถ๊ณผ ํจ๊ป ํ ๋น๋๋ฉฐ, ํจ์์ ํธ์ถ์ด ์๋ฃ๋๋ฉด ์๋ฉธํ๋ค. ํจ์๊ฐ ํธ์ถ๋๋ฉด ์คํ์๋ ํจ์์ ๋งค๊ฐ๋ณ์, ํธ์ถ์ด ๋๋ ๋ค ๋์๊ฐ๋ ๋ฐํ ์ฃผ์ ๊ฐ, ํจ์์์ ์ ์ธ๋ ์ง์ญ๋ณ์ ๋ฑ์ด ์ ์ฅ๋๋ค. ์ด๋ ๊ฒ ์คํ ์์ญ์ ์ฐจ๋ก๋๋ก ์ ์ฅ๋๋ ํจ์์ ํธ์ถ ์ ๋ณด๋ฅผ ์คํ ํ๋ ์ ์ด๋ผ๊ณ ํ๋ค. ์คํ ํ๋ ์์ ํ์ฉํ๋ฉด ํจ์์ ํธ์ถ์ด ๋ชจ๋ ๋๋ ๋ค์ ํด๋น ํจ์๊ฐ ํธ์ถ๋๊ธฐ ์ด์ ์ํ๋ก ๋๋์๊ฐ ์ ์๋ค. ์ฌ๊ทํจ์ public class Recursive { public static void main(String[] args){ Recursive T = new Recursive(); ..
๐ Comparable & Comparator - Comparable๊ณผ Comparator๋ ๋ชจ๋ ์ธํฐํ์ด์ค์ด๋ค. - ์ฆ, ์ฌ์ฉํ๊ณ ์ ํ๋ค๋ฉด ์ธํฐํ์ด์ค ๋ด์ ์ ์ธ๋ ๋ฉ์๋๋ฅผ ๋ฐ๋์ ๊ตฌํ ํด์ผํ๋ค. ๋ณดํต Comparable ์ธํฐํ์ด์ค์๋ compareTo(T o) ๋ฉ์๋ ํ๋๊ฐ ์ ์ธ๋์ด์๋ค. ์ด๊ฒ์ compareTo ๋ฉ์๋๋ฅผ ์ฌ์ ์(Override)ํด์ผ ํ๋ค๋ ๊ฒ์ด๋ค. Comparator์ธํฐํ์ด์ค๋ฅผ ์ฌ์ฉํ๋ ค๋ฉด compare ๋ฉ์๋๋ฅผ ๊ตฌํํด์ผ ํ๊ณ , Comparable ์ธํฐํ์ด์ค๋ฅผ ์ฌ์ฉํ๋ ค๋ฉด compareTo ๋ฉ์๋๋ฅผ ๊ตฌํํด์ผํ๋ค. โ Comparable & Comparator " ๊ฐ์ฒด๋ฅผ ๋น๊ตํ ์ ์๋๋ก ๋ง๋ ๋ค " Why ? ์๋๋ byte, int, double ๋ฑ ๋ถ๋ฑํธ๋ฅผ ํตํด ์ฝ๊ฒ ๋ ๋ณ์๋ฅผ ๋น๊ตํ ..
๐ TreeSet TreeSet TreeSet์ Set ์ธํฐํ์ด์ค๋ฅผ ๊ตฌํํ ํด๋์ค๋ก์จ ๊ฐ์ฒด๋ฅผ ์ค๋ณตํด์ ์ ์ฅํ ์ ์๊ณ ์ ์ฅ ์์๊ฐ ์ ์ง๋์ง ์๋๋ค๋ Set์ ์ฑ์ง์ ๊ทธ๋๋ก ๊ฐ์ง๊ณ ์๋ค. ์ด์ง ํ์ ํธ๋ฆฌ์ ๊ตฌ์กฐ๋ก ์ด๋ฃจ์ด์ ธ ์๋ค. ์ถ๊ฐ์ ์ญ์ ์๋ ์๊ฐ์ด ์กฐ๊ธ ๋ ๊ฑธ๋ฆฌ์ง๋ง, ์ ๋ ฌ๊ณผ ๊ฒ์์ ๋์ ์ฑ๋ฅ์ ๋ณด์ด๋ ์๋ฃ๊ตฌ์กฐ์ด๋ค. ์ด์งํ์ํธ๋ฆฌ์ ํํ๋ก ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๊ธฐ์ ๊ธฐ๋ณธ์ ์ผ๋ก Nature Ordering์ ์ง์ํ๋ฉฐ ์์ฑ์์ ๋งค๊ฐ๋ณ์๋ก Comparator ๊ฐ์ฒด๋ฅผ ์ ๋ ฅํ์ฌ ์ ๋ ฌ ๋ฐฉ๋ฒ์ ์์๋ก ์ง์ ํด์ค ์๋ ์๋ค. ๋ ๋ ๋ธ๋ ํธ๋ฆฌ : ๋ถ๋ชจ๋ ธ๋๋ณด๋ค ์์ ๊ฐ์ ๊ฐ์ง๋ ๋ ธ๋๋ ์ผ์ชฝ ์์์ผ๋ก, ํฐ ๊ฐ์ ๊ฐ์ง๊ณ ์๋ ๋ ธ๋๋ ์ค๋ฅธ์ชฝ ์์์ผ๋ก ๋ฐฐ์นํ์ฌ ๋ฐ์ดํฐ์ ์ถ๊ฐ๋ ์ญ์ ์ ํธ๋ฆฌ๊ฐ ํ์ชฝ์ผ๋ก ์น์ฐ์ณ์ ธ์์ง ์๋๋ก ๊ท ํ์ ๋ง์ถ์ด์ค๋ค...
HashSet HashSet์ด๋? Set ์ธํฐํ์ด์ค์์ ์ง์ํ๋ ๊ตฌํ ํด๋์ค์ด๋ค. ์์๋๋ก ์ ๋ ฅ๋์ง ์๊ณ , ์ผ์ ํ๊ฒ ์ ์ง๋์ง ์๋๊ฒ ํน์ง์ด๋ค. HashSet์ null ์์๋ ํ์ฉํ๋ค. ์ด ํด๋์ค์ ๊ฐ์ฅ ํฐ ํน์ง์ ์ค๋ณต์ ํ์ฉํ์ง ์๋๋ค๋ ๊ฒ ์ค๋ณต์ ๊ฑธ๋ฌ๋ด๋ ๊ณผ์ HashSet์ ๊ฐ์ฒด๋ฅผ ์ ์ฅํ๊ธฐ ์ ์ ๋จผ์ ๊ฐ์ฒด์ hashCode()๋ฉ์๋๋ฅผ ํธ์ถํด์ ํด์ ์ฝ๋๋ฅผ ์ป์ด๋ธ ๋ค์ ์ ์ฅ๋์ด ์๋ ๊ฐ์ฒด๋ค์ ํด์ ์ฝ๋์ ๋น๊ตํ ๋ค ๊ฐ์ ํด์ ์ฝ๋๊ฐ ์๋ค๋ฉด ๋ค์ equals() ๋ฉ์๋๋ก ๋ ๊ฐ์ฒด๋ฅผ ๋น๊ตํด์ true๊ฐ ๋์ค๋ฉด ๋์ผํ ๊ฐ์ฒด๋ก ํ๋จํ๊ณ ์ค๋ณต ์ ์ฅ์ ํ์ง ์์ต๋๋ค. ๋ฌธ์์ด์ HashSet์ ์ ์ฅํ ๊ฒฝ์ฐ, ๊ฐ์ ๋ฌธ์์ด์ ๊ฐ๋ String๊ฐ์ฒด๋ ๋์ผํ ๊ฐ์ฒด๋ก ๊ฐ์ฃผ๋๊ณ ๋ค๋ฅธ ๋ฌธ์์ด์ ๊ฐ๋ String๊ฐ์ฒด๋ ๋ค๋ฅธ ๊ฐ..
โ Greedy Algorithm "๋งค ์ ํ์์ ์ง๊ธ ์ด ์๊ฐ ๋น์ฅ ์ต์ ์ ๋ต์ ์ ํํ์ฌ ์ ํฉํ ๊ฒฐ๊ณผ๋ฅผ ๋์ถํ์"๋ผ๋ ๋ชจํ ๋ฅผ ๊ฐ์ง ์๊ณ ๋ฆฌ์ฆ ๊ทธ๋ฆฌ๋ ์๊ณ ๋ฆฌ์ฆ์ ๊ธฐ๋ณธ์ ์ผ๋ก ๋ฌด์กฐ๊ฑด ํฐ ๊ฒฝ์ฐ๋๋ก, ๋ฌด์กฐ๊ฑด ์์ ๊ฒฝ์ฐ๋๋ก, ๋ฌด์กฐ๊ฑด ๊ธด ๊ฒฝ์ฐ๋๋ก, ๋ฌด์กฐ๊ฑด ์งง์ ๊ฒฝ์ฐ๋๋ก ๋ฑ ๊ทน๋จ์ ์ผ๋ก ๋ฌธ์ ์ ์ ๊ทผํด์ผ ํ๋ค๋ ์ ์์ ์ ๋ ฌ(Sort)์ด ํจ๊ป ์ด์ฉ๋๋ ๊ฒฝ์ฐ๊ฐ ๋ง๋ค. Greedy Algorithm ์ฅ์ ํญ์ ์ต์ ์ ๊ฒฐ๊ณผ๋ฅผ ๋์ถํ๋ ๊ฒ์ ์๋์ง๋ง ์ด๋ ์ ๋ ์ต์ ์ํด์ ๊ทผ์ฌํ ๊ฐ์ ๋น ๋ฅด๊ฒ ๊ตฌํ ์ ์๋ค๋ ์ฅ์ ์ด ์๋ค. ๋ํ ํน์ ํ ์ํฉ์ ์์ด์๋ ๊ทธ๋ฆฌ๋ ์๊ณ ๋ฆฌ์ฆ์ด ์ต์ ์ ํด๋ฅผ ๋ณด์ฅํ ์ ์๋ค. > ์์ 620์์ด ์๋ค๋ฉด, 620์ ์ดํ์ ๊ฐ์ฅ ํฐ ์ก์๊ฐ 500์์ง๋ฆฌ์ด๋ฏ๋ก ๋จผ์ 500์์ง๋ฆฌ ๋์ ์ ํ๋ ์ฌ์ฉํ๊ณ , 120์์ด ๋จ๋๋ค...
๐ 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๊ฐ ์ ์๋ก ๋์ด์ค์ง ์๋ ..