목록Algorithm (77)
Development Palette

package com.swea.w0820.n1223_계산기2; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.Stack; //1. 스택을 이용해 후위표기식으로 변환 //2. 스택을 이용해 후위표기식 연산 public class Solution { public static void main(String[] args) throws NumberFormatException, IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); final int T = 10; f..
input 10 11 12 13 14 15 1 25 20 정답 가능한 것 10 11 12 13 14 15 25 1 12 13 14 15 20 25
Q. 정사각형으로 이루어진 공간에 초록은 1, 하양은 0으로 나타낸다. 다양한 크기를 갖는 정사각형의 각각 색깔별 갯수는? package com.ssafy.w0819; //분할정복 public class MakeSpaceTest_분할정복 { static int white, green; static int [][] spaces; public static void main(String[] args) { int n = 8; spaces = new int [][] { {1,1,0,0,0,0,1,1}, {1,1,0,0,0,0,1,1}, {0,0,0,0,1,1,0,0}, {0,0,0,0,1,1,0,0}, {1,0,0,0,1,1,1,1}, {0,1,0,0,1,1,1,1}, {0,0,1,1,1,1,1,1}, {0,0,..

너비우선탐색 (Breadth First Search, BFS) 루트 노드의 자식노드들을 먼저 모두 차례로 방문, 이렇게 방문했던 자식 노드들의 그 자식들을 차례로 방문하는 방식. 즉, 루트 -> 자식1 -> 자식2 -> 자식3 -> 손자(?)1 -> 손자2.. 이런식 Queue 사용 : 인접한 노드들을 탐색 후, 차례로 다시 너비(높이(레벨)가 같은) 우선 탐색을 해야함.. 따라서 선입선출을 이용해야한다 이때 index를 이용해 탐색한다. 즉, Integer타입 (왼쪽자식은 x2, 오른쪽자식은 x2+1) Queue q = new LinkedList(); 깊이우선탐색 (Depth First Search, DFS) 루트 노드에서 출발해 깊이 탐색하다가 더 이상 갈 수 없으면, 가장 마지막에 만났던 노드로 돌..

package com.baekjoon.w0818.n1992_쿼드트리; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.IOException; import java.io.InputStreamReader; import java.io.OutputStreamWriter; public class Main_final { static int [][] map; static StringBuilder sb = new StringBuilder(); public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new Inp..
package com.ssafy.w0812.permutation; import java.util.Arrays; // w0803.p - PermutationTest2.java 비트마스크응용; // N개의 서로 다른 수에서 뽑는 순열 public class PermutationTest_Bitmasking { static int N=3,R=3;// --> 3개중에 2개뽑기 3x2 //static int N=3,R=3; //static int N=3,R=1; static int[] input; static int[] numbers; private static void permutation(int cnt, int flag) { if(cnt == R) { System.out.println(Arrays.toStrin..
- 현 순열에서 사전 순으로 다음 순열 생성 - 자바는 네퍼의 API가 없으므로 직접 구현해야함.. - 네퍼로 순열을 생성하는 것을 응용하여 조합을 할 수 있다. - 주의 : 네퍼 하기 전 오름차순 정렬 후, 가장 작은 순열을 먼저 처리 해야한다. 순열 package com.ssafy.w0812.permutation; import java.util.Arrays; public class NextPermutationTest { public static void main(String[] args) { int[] input = {7,1,4}; Arrays.sort(input); // 가장 작은 순열 만들기 , 1,4,7 do { // 순열 사용 System.out.println(Arrays.toString(in..
- 가운데에 있는 값과 찾는 키를 비교하고 다음 구간을 결정하고, 그 구간을 또 반으로 나누어 키 비교를 반복하는 검색방법을 통해 원하는 키를 찾는 것 - 이진 검색을 하기 위한 수행 조건은 정렬된 상태 - 시간복잡도 : log2의 N승 - 이진검색은 문제를 풀 때 이진검색의 아이디어를 접목하여 사용하기 때문에 스스로 구현할 줄 알아야함! package com.ssafy.w0817; import java.util.Arrays; public class BinarySearchTest { public static void main(String[] args) { int[] arr = {10,4,6,20,35,7}; Arrays.sort(arr); // 값들을 오름차순 정렬 // 4,6,7,10,20,35 Sys..