BaekJoon

15657번:N과 M (8)[Java]
메서드 매개변수를 시작하는 index, 출력을 위하여 cnt , StringBuilder 3개로 잡는다. [소스코드] package algorithm15657; import java.util.*; public class Main { static int n, m; static int a[]; static int useint[]; static boolean[] visit; public static void main(String[] args){ Scanner sc = new Scanner(System.in); n = sc.nextInt();//수 입력 m = sc.nextInt();//한줄당 개수 입력 a = new int[m]; useint = new int[n]; visit = new boolean[n+1..

16953번:A → B[Java]
그리디 식으로 접근해야한다. [소스코드] package algorithm16953; import java.io.*; import java.util.*; public class Main{ public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); StringTokenizer st = new StringTokenizer(br.readLine()); int a = Integer.parseInt(st.nextToken()); int b = Integer.parseInt(st.nextToken()); int count = 1; whil..

15654번: N과 M (5)[Java]
처음 방문한 값만 아니고 방문하지 않은 값을 나오게한다. [소스코드] package algorithm15654; import java.util.*; public class Main { static int n, m; static int a[]; static int useint[]; static boolean[] visit; public static void main(String[] args){ Scanner sc = new Scanner(System.in); n = sc.nextInt();//수 입력 m = sc.nextInt();//한줄당 개수 입력 a = new int[m]; useint = new int[n]; visit = new boolean[n+1]; //차례대로 수 입력 for(int i=0; i

15652번:N과 M (4) [Java]
이 전의 글과 같이 백트래킹을 이용하여 풀었다. [소스코드] package algorithm15650; import java.util.*; public class Main { static int n, m; static int a[]; public static void main(String[] args){ Scanner sc = new Scanner(System.in); n = sc.nextInt();//수 입력 m = sc.nextInt();//한줄당 개수 입력 a = new int[m]; go(1,0); } public static void go(int index,int depth) { //인덱스가 마지막 위치에 도달하면 수열 출력 if(depth == m) { for(int val:a) { Syste..

15650번:N과 M (2) [Java]
이 문제는 백트래킹 알고리즘을 이용하여 풀었다. 백트래킹이란 해를 찾는 도중 해가 아니어서 막히면, 되돌아가서 다시 해를 찾아가는 기법을 말합니다. 최적화 문제와 결정 문제를 푸는 방법이 됩니다. 😀 DFS와 백트래킹 알고리즘 - 백트래킹(Backtracking)의 정의 및 예시문제 이번에 살펴볼 개념은 백트래킹에 관한 내용입니다. chanhuiseok.github.io [소스코드] package algorithm15650; import java.io.*; import java.util.*; public class Main { static int n, m; static int a[]; public static void main(String[] args){ Scanner sc = new Scanner(Sy..

17144번:미세먼지 안녕![Java]
문제에 대한 이해가 조금 어려울 수도 있다. 미세먼지의 확산이 동시에 된다는 것을 생각하고 문제를 읽는다면 이해가 빠를 것이다. 특별한 알고리즘 없이 반복문으로 구현한 것이다. 코드는 아래와 같다. package algorithm17144; import java.util.*; public class Main { public static void main(String[] ags) { var sc = new Scanner(System.in); //자동형변환 int R, C, T;//행 열 초 R = sc.nextInt(); C = sc.nextInt(); T = sc.nextInt(); //현재 미세먼지를 담을 배열 int[][] cur = new int[C][R]; //확산 후 미세먼지를 담을 배열 int..

1149번:RGB거리[Java]
처음에 줄 수를 입력을 한 후 각 줄마다 R, G, B 숫자를 입력한다. 최소비용을 구하는데 인접한 집끼리는 색이 겹치면 안된다. 예를 들어 3번 집에 초록색을 칠한다면, 2번집과 4번 집은 초록색을 칠 할 수 없다. 이번 문제는 재귀를 이용하여 풀어보았다. import java.util.*; public class Main { final static int r = 0; final static int g = 1; final static int b = 2; static int[][] house; static int[][] min; public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n=0; n=sc.nextInt..