본문 바로가기

CODING/BAEKJOON72

[BAEKJOON] 1931번 회의실 배정 이차원 배열에 회의 시작시간과 종료시간을 저장한다. 이전 회의의 종료 시간과 이후 회의의 시작 시간이 서로 겹치지 않으면 된다. 또한, 최대한 많은 회의를 진행하려면 종료시간이 빠른 것을 선택한다. 예제 입력의 회의 시작 시간과 종료 시간 문제의 힌트에서 보이는 바와 같이 총 회의는 4번으로 (1,4), (5,7), (8,11), (12,14) 를 이용할 수 있다. 위의 그래프와 같이 종료시간을 기준으로 정렬하고, 다음 회의는 시작 시간이 같을 경우 회의시간이 짧은 것을 우선으로 선택하면 된다. Comparator 인터페이스를 구현하여 입력되는 값의 종료 시간을 기준으로 오름차순 정렬한다. 즉, 종료시간이 작을 수록 앞쪽에 배치된다. (Comparator 인터페이스 사용법을 아직 모른다면 아래 글 참조해.. 2022. 3. 13.
[BAEKJOON] 1012번 유기농 배추 이중 for문을 돌면서 1인 곳(배추가 있는 곳)을 찾으면 해당 구역의 인근 배추를 모두 탐색하여 방문한다. 구역마다 배추흰지렁이가 하나씩만 존재해야 하기 때문에 배추를 발견한다면 근처 배추에 모두 방문해서 다음번에 재방문을 방지한다! import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.LinkedList; import java.util.Queue; import java.util.StringTokenizer; public class Main { static int N, M, BaeChu, cnt; static int arr[][]; static boolean v.. 2022. 3. 7.
[BEAKJOON] 7576번 토마토 1(익은 토마토)인 위치에서 하루가 지날 때마다 맞닿은 부분(0)이 1로 변경된다. 내 주변 탐색 후 변경하는 과정을 반복해야 한다. 너비우선탐색 문제 유형으로 큐에 삽입하여 과정을 하나씩 따라가본다. 1(익은 토마토)의 위치가 여러 개일 경우는? 큐에 전부 넣어서 해결한다. 하루가 지날 때마다 큐에 저장된 모든 경로를 따라가 0을 1로 바꾼다! import java.util.*; import java.io.*; public class Main { static int N, M; static int dx[] = {1,-1,0,0}; static int dy[] = {0,0,1,-1}; static String arr[][]; static Queue queue = new LinkedList(); static.. 2022. 3. 5.
[BAEKJOON] 2178번 미로 탐색 시작점에서부터 (N,M) 위치까지 너비우선탐색 방법으로 갈 수 있는 경로라면 나아간다. 나아가면서 현재 위치까지의 경로+1씩 저장한다. import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.LinkedList; import java.util.Queue; import java.util.StringTokenizer; public class Main { static String map[][]; static int N, M; static int new_x, new_y; static int cnt; static int visited[][]; static int[] di =.. 2022. 3. 2.
[BAEKJOON] 1748번 수 이어 쓰기 1 예를 들어 123이라면 1의 자리가 있는 수는 1부터 123까지이다. 따라서 1의 자리가 있는 수는 (123-1+1)개이다. 10의 자리가 있는 수는 10부터 123까지이다. 개수는 (123-10+1) 이다. 100의 자리가 있는 수는 100부터 123까지이다. 개수는 (123-100+1) 이다. 위의 과정을 N의 자릿수 만큼 반복한다. import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.IOException; import java.io.InputStreamReader; import java.io.OutputStreamWriter; public class Main { public static void main(Strin.. 2022. 2. 14.
[BAEKJOON] 1026번 보물 A 배열은 오름차순, B 배열은 내림차순으로 정렬했을 때의 같은 위치의 인자를 곱해야 합계가 최소값이 된다. 아래 코드를 보면 int형 a[], Integer형 b[] 배열로 선언했다. 내림차순으로 배열을 정렬하기 위해서는 배열을 정렬한 후, 역순으로 List를 재정렬하는 Collections.reverseOrder()를 사용해야 하는데 b배열을 int형으로 선언했을 시에는 Arrays.sort(b, Collections.reverseOrder());와 같이 인식되지 못하는 오류가 발생했다. https://docs.oracle.com/en/java/javase/12/docs/api/java.base/java/util/Arrays.html https://docs.oracle.com/en/java/javas.. 2022. 2. 11.