https://school.programmers.co.kr/learn/courses/30/lessons/120956 ํ๋ก๊ทธ๋๋จธ์ค ์ฝ๋ ์ค์ฌ์ ๊ฐ๋ฐ์ ์ฑ์ฉ. ์คํ ๊ธฐ๋ฐ์ ํฌ์ง์ ๋งค์นญ. ํ๋ก๊ทธ๋๋จธ์ค์ ๊ฐ๋ฐ์ ๋ง์ถคํ ํ๋กํ์ ๋ฑ๋กํ๊ณ , ๋์ ๊ธฐ์ ๊ถํฉ์ด ์ ๋ง๋ ๊ธฐ์ ๋ค์ ๋งค์นญ ๋ฐ์ผ์ธ์. programmers.co.kr ์ด ๋ฌธ์ ๋ฅผ split() ๋ฉ์๋๋ก ํ์ดํ๋ ๋ฐฉ๋ฒ์์ ํท๊ฐ๋ ธ๋ ๊ฒ.. ๐ก split()์ด ์ธ์ 1๊ฐ ์ผ ๋ String str="a1b1c" String[] temp=str.split("1") ์ด๋ ๊ฒ ์คํํ๋ฉด 1์ด ๊ตฌ๋ถ์๋ก ๋ค์ด๊ฐ ๊ฒ์ด๊ณ , ์ด๋ฅผ ๊ธฐ์ค์ผ๋ก a b c ์ด๋ ๊ฒ ์๋ฆฌ๊ฒ ๋๋ค. ๐ก split()์ด ์ธ์ 2๊ฐ ์ด์ ์ผ ๋ String str="ayaye" String[] temp=str.sp..
๐ก Collection ์ด๋? collection : ๊ฐ์ฒด์ด๋ฉฐ ๋ฐฐ์ด์ฒ๋ผ ์ฌ๋ฌ ์์๋ฅผ ๋ด์ ์ ์๋ ์๋ฃ๊ตฌ์กฐ ๐ก Collection ์๋ฃ๊ตฌ์กฐ ์ ํ 1. ์์๊ฐ ์๋ ๋ชฉ๋ก์ธ List 2. ์์๊ฐ ์ค์ํ์ง ์์ ๋ชฉ๋ก์ธ Set 3. ๋จผ์ ๋ค์ด์จ ๊ฒ์ด ๋จผ์ ๋๊ฐ๋(FIFO) Queue 4. Key-Valueํํ๋ก ์ ์ฅ๋๋ Map ๐ก HashMap๊ณผ HashSet์ ์ฐจ์ด์ 6๊ฐ์ง 1. ์ ์ HashMap : Map ์ธํฐํ์ด์ค์ ๊ตฌํ์ฒด๋ก, HashTable๊ณผ ์ ์ฌํ ์๋ฃ๊ตฌ์กฐ๋ก ๋ฐ์ดํฐ๋ฅผ ์ ์ฅ HashSet : Set์ ์ธํฐํ์ด์ค ๊ตฌํ์ฒด๋ก, ๋ด๋ถ์ ์ผ๋ก HashMap์ ์ฌ์ฉํ๊ธฐ ๋๋ฌธ์ HashTable๊ณผ ์ ์ฌํ ์๋ฃ๊ตฌ์กฐ๋ก ๋ฐ์ดํฐ๋ฅผ ์ ์ฅ 2. ๋ฐ์ดํฐ ์ ์ฅ ํํ HashMap : Key-Value ์ ํํ๋ก ๋ฐ์ดํฐ๋ฅผ ์ ์ฅ, ..
![article thumbnail](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fk3tBt%2FbtrRBLKus7g%2FiYBUatTvi648SK39Eqx9Y1%2Fimg.png)
๐กBFS BFS๋ ๋๋น ์ฐ์ ํ์์ผ๋ก, ๋ฃจํธ ๋ ธ๋์์ ํ์์ ์์ํ์ฌ ๊ฐ์ ๋ ๋ฒจ์ ์๋ ๋ ธ๋๋ฅผ ๋ชจ๋ ํ์ํ ๋ค์ ํ์ ๋ ๋ฒจ๋ก ๋ด๋ ค๊ฐ ๋ ๋ชจ๋ ํ์์ ์งํํ๋ค๊ฐ, ๋ ์ด์ ํ์ํ ๋ ธ๋๊ฐ ์์ ๋ ํ์์ ๋ฉ์ถ๋ ๋ฐฉ์์ผ๋ก ๋์ํ๋ค. ํ๋ฅผ ์ด์ฉํ์ฌ ๊ตฌํํ๋ค. ๐ก BFS ์ฝ๋๊ตฌํ import java.util.*; class Node{ int data; Node lt,rt; public Node(int val){ data=val; lt=rt=null; } } public class Solution { Node root; public void BFS(Node root) { Queue Q=new LinkedList(); Q.offer(root); int L=0; while(!Q.isEmpty()){ int len=Q..
๐ก ์ ํ์ ๋ ฌ ( Selection Sort ) ๊ฐ์ฅ ์์์ ์ธ ๋ฐฉ๋ฒ์ ์ ๋ ฌ ์๊ณ ๋ฆฌ์ฆ ๋ฐ์ดํฐ๊ฐ ๋ฌด์์๋ก ์ฌ๋ฌ๊ฐ ์์ ๋, ๊ฐ์ฅ ์์ ๋ฐ์ดํฐ๋ฅผ ์ ํํด ๋งจ ์์ ์๋ ๋ฐ์ดํฐ์ ๋ฐ๊พธ๊ณ , ๊ทธ ๋ค์ ์์ ๋ฐ์ดํฐ๋ฅผ ์ ํํด ์์์ ๋๋ฒ์งธ ๋ฐ์ดํฐ์ ๋ฐ๊พธ๋ ๊ณผ์ ์ ๋ฐ๋ณตํ๋ค. ์๊ฐ ๋ณต์ก๋ : O(N²) ์ฅ์ ์ถ๊ฐ์ ์ธ ๋ฉ๋ชจ๋ฆฌ ์๋น๊ฐ ์๋ค. ๋จ์ ์์ ์ ๋ ฌ์ด ์๋๋ค. ์๊ฐ๋ณต์ก๋๊ฐ O(N^2) ์ด๋ค. public void sort(int[] arr) { for(int i=0; i
![article thumbnail](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F8HvIb%2FbtrQrr1r9PU%2FVCbtj4iRMlb9i8K7KWiG0k%2Fimg.png)
โ Queue Queue : ์ค์ ์ง์ด์ ์์๋๋ก ์ฒ๋ฆฌ๋๋ ์๋ฃ๊ตฌ์กฐ ํ๋ ๋ฐ์ดํฐ๋ฅผ ์ผ์์ ์ผ๋ก ์์๋๊ธฐ ์ํ ์๋ฃ๊ตฌ์กฐ๋ก ์คํ๊ณผ๋ ๋ค๋ฅด๊ฒ, FIFO ( First In First Out )์ ํํ์ด๋ค. ์ฆ, ๋จผ์ ๋ค์ด์จ ๋ฐ์ดํฐ๊ฐ ๊ฐ์ฅ ๋จผ์ ๋๊ฐ๋ ๊ตฌ์กฐ์ด๋ค. ๐กQueue์ ํน์ง 1. ๋จผ์ ๋ค์ด๊ฐ ์๋ฃ๊ฐ ๋จผ์ ๋์ค๋ FIFO ๊ตฌ์กฐ 2. ํ๋ ํ์ชฝ ๋์ front๋ก ์นญํ์ฌ ์ญ์ ์ฐ์ฐ๋ง ์ํ 3. ๋ค๋ฅธ ํ์ชฝ ๋์ rear๋ก ์นญํ์ฌ ์ฝ์ ์ฐ์ฐ๋ง ์ํ 4. ๊ทธ๋ํ์ ๋์ด ์ฐ์ ํ์(BFS)์์ ์ฌ์ฉ 5. ์ปดํจํฐ ๋ฒํผ์์ ์ฃผ๋ก ์ฌ์ฉ, ๋ง๊ตฌ ์ ๋ ฅ์ด ๋์์ผ๋ ์ฒ๋ฆฌ๋ฅผ ํ์ง ๋ชปํ ๋, ๋ฒํผ(ํ)๋ฅผ ๋ง๋ค์ด ๋๊ธฐ ์ํด Queue ์ฌ์ฉ๋ฒ Queue ์ ์ธ import java.util.LinkedList; import java.uti..
![article thumbnail](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdGRMip%2FbtrQvZ3sc1N%2FXwEfSqkRGA5XKE5pl9jnH0%2Fimg.png)
โ Stack Stack = '์๋ค' , '๋๋ฏธ' ์ฆ, ์์์ ๋ฌผ๊ฑด์ ์์ ์ฌ๋ฆฌ๋ฏ์ด ๋ฐ์ดํฐ๋ฅผ ์๋ ์๋ฃ๊ตฌ์กฐ์ด๋ค. ๊ฐ์ฅ ํฐ ํน์ง์ ๋์ค์ ๋ค์ด๊ฐ๊ฒ์ด ๋จผ์ ๋์ค๋ ( Last In First Out )์ ํํ๋ฅผ ๋ฌ๋ค๋ ๊ฒ์ด๋ค. ์ด ๋ฐฉ์์ ๊ฐ์ง ์๋ฃ๊ตฌ์กฐ์ธ Stack์ ํ์ฉํ์ฌ ๋ค์ํ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ์ ์๋ค. ์ฌ์ฉ์ import java.util.Stack ์ ์ํฌํธํด์ผํ๋ค. Stack์ ํน์ง 1. ๋จผ์ ๋ค์ด๊ฐ ์๋ฃ๊ฐ ๋์ค์ ๋์ด ( LIFO ) 2. ์์คํ ํดํน์์ ๋ฒํผํ๋ก์ฐ ์ทจ์ฝ์ ์ ์ด์ฉํ ๊ณต๊ฒฉ์ ํ ๋ ์คํ ๋ฉ๋ชจ๋ฆฌ์ ์์ญ์์ ํจ 3. ์ธํฐ๋ฝํธ ์ฒ๋ฆฌ, ์์์ ๊ณ์ฐ, ์๋ธ๋ฃจํด์ ๋ณต๊ท ๋ฒ์ง ์ ์ฅ ๋ฑ์ ์ฐ์ 4. ๊ทธ๋ํ์ ๊น์ด ์ฐ์ ํ์(DFS)์์ ์ฌ์ฉ 5. ์ฌ๊ท์ (Recursion) ํจ์๋ฅผ ํธ์ถํ ๋ ์ฌ์ฉ S..
๐กBigDecimal ์๋ฐ์์ ์ซ์๋ฅผ ์ ๋ฐํ๊ฒ ์ ์ฅํ๊ณ ํํํ ์ ์๋ ๊ฐ์ฒด ์๋ฐ์์ ์์๋ ์ ๋ฐ๋์ ํ๊ณ๋ก ์ธํด ๊ฐ์ด ์ ์ค๋๋ ๊ฒฝ์ฐ๊ฐ ์๋๋ฐ, ๊ทธ๊ฒ์ ๋ฐฉ์งํ ์ ์๋ค. ๋จ์ : ๋๋ฆฐ ์๋ & ๋ณต์กํ ์ฌ์ฉ ๋ฐฉ๋ฒ import java.math.BigDecimal; ๐กBigDecimal ๊ธฐ๋ณธ ์์ BigDecimal์ ๊ฐ์ฒด์ด๊ธฐ ๋๋ฌธ์ ์ด๊ธฐํ๊ฐ ๊ธฐ๋ณธ ํ์ ๋ณด๋ค ๊ธด ํธ์ด๋ค. ๊ทธ๋์ ์์ฃผ ์ฌ์ฉํ๋ 0, 1, 10์ ์์๋ก ์ ์๋์ด์์ BigDecimal.ZERO // 0 BigDecimal.ONE // 1 BigDecimal.TEN // 10 ๐กBigDecimal ์ด๊ธฐํ double ํ์ ์ ๊ฐ์ฅ ์์ ํ๊ฒ BigDecimal์ ์ด์ฉํด์ ์ด๊ธฐํํ๋ ๋ฐฉ๋ฒ์ ๋ฌธ์์ด ํํ๋ก BigDecimal ์์ฑ์์๊ฒ ์ ๋ฌํ๋๊ฒ์ด๋ค. d..
![article thumbnail](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FvjwdN%2FbtrQrrM0Ton%2Fn4nkgPNpsvN0X53rjBOQDk%2Fimg.png)
โ ์ด์ง ํธ๋ฆฌ ์ํ ์ด์ง ํธ๋ฆฌ๋ ๋ถํ ์ ๋ณต ํ์ ์๊ณ ๋ฆฌ์ฆ์ผ๋ก ๋น ๋ฅธ ํ์์ด ๊ฐ๋ฅํ๋ค๋ ์ฅ์ ์ด ์๋ค. ํ์ ๋ฐฉ๋ฒ์ ๋ฐ๋ผ ์ ์, ์ค์, ํ์๋ก ๋๋๋ค ์ ์ Node๋ฅผ ๊ธฐ์ค์ผ๋ก ๋ถ๋ชจ -> ์ผ์ชฝ ์์ -> ์ค๋ฅธ์ชฝ ์์ ์์์ด ์ฌ๋ฟ์ผ ๊ฒฝ์ฐ ๋๊น์ง ํ๊ณ ๋ ๋ค. 1 2 4 5 3 6 7 ์ค์ Node๋ฅผ ๊ธฐ์ค์ผ๋ก ์ผ์ชฝ ์์ -> ๋ถ๋ชจ -> ์ค๋ฅธ์ชฝ ์์ ์ผ์ชฝ ๋๊น์ง ๋๋ฌํ์ฌ ๋ถ๋ชจ๋ฅผ ์ง๋ ์ค๋ฅธ์ชฝ ๋ฐฉํฅ์ผ๋ก ์งํ 4 2 5 1 6 3 7 ํ์ ์ผ์ชฝ ์์ -> ์ค๋ฅธ์ชฝ ์์ -> ๋ถ๋ชจ ๋ฐฉํฅ ์์์ ๋จผ์ ํ์ ํ ๋ถ๋ชจ์๊ฒ ๊ฐ๋ค. 4 5 2 6 7 3 1 > ์ฝ๋ ๊ตฌํ ๊ตฌํ๋ ์ฝ๋๋ฅผ ๊ธฐ์ค์ผ๋ก, print๋ฌธ์ ์์๊ฐ ์ด๋๋์ ๋ฐ๋ผ ์ ์, ์ค์, ํ์๋ฅผ ๋๋ ์ ์๋ค. import java.util.*; Class Node{ int dat..