Deep_Dev
article thumbnail
์„น์…˜8. DFS, BFS ํ™œ์šฉ

1. ํ•ฉ์ด ๊ฐ™์€ ๋ถ€๋ถ„์ง‘ํ•ฉ 2. ๋ฐ”๋‘‘์ด ์Šน์ฐจ 3. ์ตœ๋Œ€์ ์ˆ˜ ๊ตฌํ•˜๊ธฐ 4. ์ค‘๋ณต์ˆœ์—ด(์ฑ„์ ์ง€์›์•ˆ๋จ) 5. ๋™์ „๊ตํ™˜ 6. ์ˆœ์—ด ๊ตฌํ•˜๊ธฐ(์ฑ„์ ์ง€์›์•ˆ๋จ) 7. ์กฐํ•ฉ์ˆ˜(๋ฉ”๋ชจ์ด์ œ์ด์…˜) 8. ์ˆ˜์—ด ์ถ”์ธกํ•˜๊ธฐ 9. ์กฐํ•ฉ ๊ตฌํ•˜๊ธฐ(์ฑ„์ ์ง€์›์•ˆ๋จ) 10. ๋ฏธ๋กœํƒ์ƒ‰(DFS) 11. ๋ฏธ๋กœ์˜ ์ตœ๋‹จ๊ฑฐ๋ฆฌ ํ†ต๋กœ(BFS) 12. ํ† ๋งˆํ† (BFS) 13. ์„ฌ๋‚˜๋ผ ์•„์ผ๋žœ๋“œ(DFS) 14. ์„ฌ๋‚˜๋ผ ์•„์ผ๋žœ๋“œ(BFS) 15. ํ”ผ์ž๋ฐฐ๋‹ฌ๊ฑฐ๋ฆฌ(DFS) 1. ํ•ฉ์ด ๊ฐ™์€ ๋ถ€๋ถ„์ง‘ํ•ฉ 2. ๋ฐ”๋‘‘์ด ์Šน์ฐจ 3. ์ตœ๋Œ€์ ์ˆ˜ ๊ตฌํ•˜๊ธฐ 4. ์ค‘๋ณต ์ˆœ์—ด ๊ตฌํ•˜๊ธฐ 5. ๋™์ „ ๊ตํ™˜ 6. ์ˆœ์—ด ๊ตฌํ•˜๊ธฐ 7. ์กฐํ•ฉ์ˆ˜ ( ๋ฉ”๋ชจ์ด์ œ์ด์…˜ ) 8. ์ˆ˜์—ด ์ถ”์ธกํ•˜๊ธฐ ( ๋ฉ”๋ชจ์ด์ œ์ด์…˜ + DFS ) 9. ์กฐํ•ฉ ๊ตฌํ•˜๊ธฐ

์„น์…˜7. Recursive, Tree, Graph(DFS, BFS ๊ธฐ์ดˆ)

๐Ÿ’ก Recursive, Tree, Graph(DFS, BFS ๊ธฐ์ดˆ) 1. ์žฌ๊ท€ํ•จ์ˆ˜(์Šคํƒํ”„๋ ˆ์ž„) 2. ์ด์ง„์ˆ˜ ์ถœ๋ ฅ(์žฌ๊ท€) 3. ํŒฉํ† ๋ฆฌ์–ผ 4. ํ”ผ๋ณด๋‚˜์น˜ ์žฌ๊ท€(๋ฉ”๋ชจ์ด์ œ์ด์…˜) 5. ์ด์ง„ํŠธ๋ฆฌ์ˆœํšŒ(DFS : Depth-First Search) 6. ๋ถ€๋ถ„์ง‘ํ•ฉ ๊ตฌํ•˜๊ธฐ(DFS) 7. ์ด์ง„ํŠธ๋ฆฌ ๋ ˆ๋ฒจํƒ์ƒ‰(BFS : Breadth-First Search) 8. ์†ก์•„์ง€ ์ฐพ๊ธฐ1(BFS) 9. Tree ๋ง๋‹จ๋…ธ๋“œ๊นŒ์ง€์˜ ๊นŒ์žฅ ์งง์€ ๊ฒฝ๋กœ(DFS) 10. Tree ๋ง๋‹จ๋…ธ๋“œ๊นŒ์ง€์˜ ๊นŒ์žฅ ์งง์€ ๊ฒฝ๋กœ(BFS) 11. ๊ทธ๋ž˜ํ”„์™€ ์ธ์ ‘ํ–‰๋ ฌ 12. ๊ฒฝ๋กœํƒ์ƒ‰(DFS) 13. ๊ฒฝ๋กœํƒ์ƒ‰(์ธ์ ‘๋ฆฌ์ŠคํŠธ, ArrayList) 14. ๊ทธ๋ž˜ํ”„ ์ตœ๋‹จ๊ฑฐ๋ฆฌ(BFS)

article thumbnail
์„น์…˜6. Sorting and Searching(์ •๋ ฌ, ์ด๋ถ„๊ฒ€์ƒ‰๊ณผ ๊ฒฐ์ •์•Œ๊ณ ๋ฆฌ์ฆ˜)

๐Ÿ“š ์ •๋ ฌ / ์ด๋ถ„๊ฒ€์ƒ‰ & ๊ฒฐ์ • ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์„ ํƒ ์ •๋ ฌ import java.util.*; class Solution { public int[] solution(int n, int[] arr) { for(int i=0; i

article thumbnail
์„น์…˜5. Stack, Queue(์ž๋ฃŒ๊ตฌ์กฐ)

1. ์˜ฌ๋ฐ”๋ฅธ ๊ด„ํ˜ธ 2. ๊ด„ํ˜ธ๋ฌธ์ž์ œ๊ฑฐ 3. ํฌ๋ ˆ์ธ ์ธํ˜•๋ฝ‘๊ธฐ(์นด์นด์˜ค) 4. ํ›„์œ„์‹ ์—ฐ์‚ฐ(postfix) 5. ์‡ ๋ง‰๋Œ€๊ธฐ 6. ๊ณต์ฃผ๊ตฌํ•˜๊ธฐ 7. ๊ต์œก๊ณผ์ •์„ค๊ณ„ 8. ์‘๊ธ‰์‹ค 1. ์˜ฌ๋ฐ”๋ฅธ ๊ด„ํ˜ธ import java.util.*; public class Main { public String solution(String str){ String answer="YES"; Stack stack=new Stack(); for(char x:str.toCharArray()){ // ๋‹ซ๋Š” ๊ด„ํ˜ธ๊ฐ€ ๋งŽ์„๋•Œ if(x=='(') stack.push(x); else{ // ๋‹ซ๋Š” ๊ด„ํ˜ธ ์ผ๋•Œ if(stack.isEmpty()) return "NO";// stack์ด ๋น„์–ด์žˆ๋ƒ => "NO" stack.pop(); // ๊ทธ๋ ‡์ง€ ์•Š๋‹ค๋ฉด ์ œ์ผ ์ƒ๋‹จ์— ์žˆ..

article thumbnail
์„น์…˜4. HashMap, TreeSet ( ํ•ด์‰ฌ, ์ •๋ ฌ์ง€์› Set )

ํ•™๊ธ‰ ํšŒ์žฅ ์•„๋‚˜๊ทธ๋žจ(HashMap) ๋งค์ถœ์•ก์˜ ์ข…๋ฅ˜(Hash, sliding window) ๋ชจ๋“  ์•„๋‚˜๊ทธ๋žจ ์ฐพ๊ธฐ ( Hash, sliding window : ์‹œ๊ฐ„๋ณต์žก๋„ O(n)) K๋ฒˆ์งธ ํฐ ์ˆ˜ 1. ํ•™๊ธ‰ํšŒ์žฅ import java.util.*; public class Main { public char solution(int n,String str){ char answer=' '; HashMap map=new HashMap(); for(char x:str.toCharArray()){ map.put(x,map.getOrDefault(x,0)+1); } int max=Integer.MIN_VALUE; for(char key:map.keySet()){ if(map.get(key)>max){ max=map.get(ke..

article thumbnail
์„น์…˜ 3. Two points, Sliding window[ํšจ์œจ์„ฑ : O(n^2)-->O(n)]

1. ๋‘ ๋ฐฐ์—ด ํ•ฉ์น˜๊ธฐ ( two pointers algorithm ) 2. ๊ณตํ†ต์›์†Œ๊ตฌํ•˜๊ธฐ( two points algorithm ) 3. ์ตœ๋Œ€ ๋งค์ถœ( Sliding window ) 4. ์—ฐ์†๋ถ€๋ถ„์ˆ˜์—ด ( ๋ณตํ•ฉ์  ๋ฌธ์ œ ) 5.1 ์—ฐ์†๋œ ์ž์—ฐ์ˆ˜์˜ ํ•ฉ ( two pointers ) 5.2 ์—ฐ์†๋œ ์ž์—ฐ์ˆ˜์˜ ํ•ฉ ( ์ˆ˜ํ•™ ) 6. ์ตœ๋Œ€ ๊ธธ์ด ์—ฐ์†๋ถ€๋ถ„์ˆ˜์—ด ( ๋ณตํ•ฉ์  ๋ฌธ์ œ ) 1. ๋‘ ๋ฐฐ์—ด ํ•ฉ์น˜๊ธฐ ( two pointers algorithm ) import java.util.*; public class Main { public ArrayList solution(int n, int m, int[] a, int[] b){ ArrayList answer=new ArrayList(); int p1=0, p2=0; while(p1

article thumbnail
์„น์…˜1. String(๋ฌธ์ž์—ด)

1. ๋ฌธ์ž์ฐพ๊ธฐ import java.util.Scanner; public class Main { public int solution(String str, char t){ int answer=0; str=str.toUpperCase(); t=Character.toUpperCase(t); for(int i=0; im){ // ์ตœ๋Œ“๊ฐ’ ์•Œ๊ณ ๋ฆฌ์ฆ˜ m=len; answer=x; } } return answer; } public static void main(String[] args){ Main T = new Main(); Scanner kb = new Scanner(System.in); String str = kb.nextLine(); System.out.print(T.solution(str); } } 4. ๋‹จ์–ด ..

article thumbnail
์„น์…˜2. Array( 1,2์ฐจ์› ๋ฐฐ์—ด )

2.1 ํฐ ์ˆ˜ ์ถœ๋ ฅํ•˜๊ธฐ solution import java.util.*; class Main { public ArrayList solution(int n, int[] arr){ ArrayList answer = new ArrayList(); answer.add(arr[0]); for(int i=1; iarr[i-1]) answer.add(arr[i]); } return answer; } public static void main(String[] args) { Main T = new Main(); Scanner kb = new Scanner(System.in); int n = kb.nextInt(); int[] arr = new int[n]; for(int i=0; i