
백준 - 시간 관리하기 6068
2023. 3. 1. 17:06
알고리즘(BOJ)/Gold
문제 분석 2차배열 정렬을 먼저 하고 진행했다. 진행되는 시간들의 합이 각 순간의 조건을 넘어가면 중단시키기 위해서다. 매순간 조건과의 차이가 가장 적은것이 결과값이 된다. 전체 소스 import java.util.*; import java.io.*; public class Main { public static void main(String[] args) throws Exception { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); StringTokenizer st = new StringTokenizer(br.readLine()," "); int repeat = Integer.parseInt(st.nextToken()..

백준 - 행복 유치원 13164
2023. 2. 28. 16:55
알고리즘(BOJ)/Gold
문제 분석 두개씩 묶어서 그 차이를 구한다. 이미 오름차순으로 정렬 되어있으니, 절대값이나 정렬은 하지 않았다. 첫번째 수일때는 비교할 수 가 없으니 패스해주고 두번째부터 앞의수랑 비교해준다. 그차이가 큰거부터 제거해야하니 이때 정렬을 해준다. 묶어야 할 수 만큼 제거해주고 남을 수 를 더해줬다. 전체 소스 import java.util.*; import java.io.*; public class Main { public static void main(String[] args) throws Exception { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); StringTokenizer st = new StringToke..

백준 - 30 10610
2023. 2. 27. 15:51
알고리즘(BOJ)/Silver
문제 분석 30의 배수는 각 자리의 수의 합이 3의 배수여야 한다. 30의 배수이기 때문에 0도 무조건 하나 이상은 있을것이다 해당의 경우에만 체크하고 그외는 중지시칸다. 가능하다면 각자리수에 최대의 수를 배치한다. 전체 소스 import java.util.*; import java.io.*; public class Main { public static void main(String[] args) throws Exception { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String str = br.readLine(); //String[] array = new String[str.length()]; int[] te..

백준 - 주유소 13305
2023. 2. 23. 23:33
알고리즘(BOJ)/Silver
문제 분석 해당 주유소보다 저렴한 주유소가 낮을때까지 나오는 거리는 곱해서 더해준다. 더 낮은 주유소가 나오기 전까지는 가격을 바꿀 이유가 없다. 전체 소스 import java.util.*; import java.io.*; public class Main { public static void main(String[] args) throws Exception { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); int repeat = Integer.parseInt(br.readLine()); long[] far = new long[repeat - 1]; long[] oil = new long[repeat]; StringTo..

백준 - 과제 13904
2023. 2. 21. 23:55
알고리즘(BOJ)/Gold
문제 분석 2차배열로 오름차순으로 정렬하고 시작했다. 가장 높은 수 부터 날짜를 하나씩 낮춰가면서 현재남은 날짜보다 높으면 더 해주면 된다. 5일동안진행하고 4 30 4 20 1 10 3 10 이 있다고 할때 5일보다 같거나 큰건없으니 패스 4일보타 같거나 큰건 30,20 이 있으니 더 높은 30을 픽 3일보다 같거나 큰건 20,10 남아있으니 20을 픽 2일보다 같거나 큰건 10이 남아있으니 10을픽 1일보다 같거나 큰건 10이 남아있으니 10을픽 전체 소스 import java.util.*; import java.io.*; public class Main { public static void main(String[] args) throws Exception { BufferedReader br = ne..

백준 - 라디오 3135
2023. 2. 16. 17:29
알고리즘(BOJ)/Silver
문제 분석 처음지점 - 마지막 지점 의 값과 바로가기 버튼 - 마지막 지점 의 값을 비교만 하면된다. 절대값으로 비교해야 하기에 Math.abs를 이용했다. 전체 소스 package test; import java.util.*; import java.io.*; public class Main { public static void main(String[] args) throws Exception { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); StringTokenizer st = new StringTokenizer(br.readLine()," "); int start = Integer.parseInt(st.nextTok..

백준 - 거스름돈 14916
2023. 2. 13. 20:10
알고리즘(BOJ)/Silver
문제 분석 거스름돈의 홀/짝 부터 분리했다. 그 이유는 홀수일경우 5의 경우도 홀수일수 밖에없다. 17 -> 5가 3개 11 -> 5가 1개 5보다 작을경우만 예외처리를 했다. 전체 소스 package test; import java.util.*; import java.io.*; public class Main { public static void main(String[] args) throws Exception { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); int input = Integer.parseInt(br.readLine()); int five = 0; int two = 0; int result = 0; i..

백준 - 크게 만들기 2812
2023. 2. 12. 22:25
알고리즘(BOJ)/Gold
문제 풀이 고정된 길이를 제외한 자리에서 제일큰 수가오면 그 앞에는 다 잘라주고, 가장 큰수는 버퍼에 넣어줬다. 전체소스 package test; import java.util.*; import java.io.*; 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 size = Integer.parseInt(st.nextToken()); int del = Integer..

백준 - ATM 11399
2023. 2. 11. 12:48
알고리즘(BOJ)/Silver
문제분석 배열을 정렬해서 중복해서 더해주면 되는 쉬운 문제였다. 전체소스 package test; import java.util.*; import java.io.*; public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); int repeat = Integer.parseInt(br.readLine()); StringTokenizer st = new StringTokenizer(br.readLine()," "); int[] array = new int[repeat]; for(int i=0; i

백준 - 섬의 개수 4963
2023. 2. 10. 15:53
알고리즘(BOJ)/Silver
문제 분석 2차배열에서 1인수중에 인접해있는것만 체크하면 되는 쉬운문제였다. 대각선도 포함시키는게 해당 문제의 키포인트라고 생각한다. 방문여부만 체크해서 중복되지 않게 했다. 전체 소스 import java.util.*; import java.io.*; public class Main { static int[][] array; static boolean[][] visited; static int x=1,y=1; static int cnt=0; public static void bfs(int a, int b) { Queue q = new LinkedList(); q.offer(new int[] {a,b}); int[] x_move = {-1,1,0,0}; int[] y_move = {0,0,-1,1}; i..