코딩테스트/[백준] 코딩테스트 연습

    신입 사원 - 1946번

    신입 사원 - 1946번

    내 코드 package com.company; import java.io.*; import java.util.*; public class Main { static int T, N; static int[][] arr; public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); StringTokenizer st = null; T = Integer.parseInt(br.readLine()); for (int i = 0; i < T; i++) { N = Integer.parseInt(br.readLine()); arr = new in..

    암호코드 - 2011번

    암호코드 - 2011번

    내 코드 package com.company; import java.io.*; import java.util.Arrays; public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String[] s = br.readLine().split(""); int len = s.length; int[] dp = new int[len + 1]; int[] arr = new int[len + 1]; for (int i = 1; i

    공유기 설치 - 2110번

    공유기 설치 - 2110번

    풀이 방법 집의 좌표가 0~1000000000까지라서 이분탐색을 이용해서 풀이해야겠다는 생각이 들었는데 접근하기가 어려웠다. 거리를 이분탐색해서 구했는데 사이 거리의 최솟값과 최댓값을 구해서 그 거리에 맞게 넣어주고 만족하는 최대거리를 찾아주었다. 내 코드 package com.company; import java.io.*; import java.util.*; public class Main { static int N, C; static ArrayList list = new ArrayList(); public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamRea..

    램프 - 1034번

    램프 - 1034번

    풀이 방법 행의 모든 열이 1인 상태(켜진상태) 인 경우를 세는 것이기 때문에 초기 상태가 같은 경우에는 스위치를 눌러도 변화된 상태가 같기 때문에 Map에 넣어서 갯수를 세어주었다. K가 짝수일 때는 행의 0의 개수가 짝수일 때 모두 1로 바뀔 수 있고 K가 홀수일 때는 행의 0의 개수가 홀수일 때 모두 1로 바뀔 수 있어서 나누어서 생각해주었다. 내 코드 package com.company; import java.io.*; import java.util.*; public class Main { static int N, M, K; static Map map = new HashMap(); public static void main(String[] args) throws IOException { Buffe..

    감소하는 수 - 1038번

    감소하는 수 - 1038번

    풀이 방법 감소하는 수의 최대는 9876543210이기 때문에 최대 수가 나올때까지 모든 수를 구해주고 순서대로 정렬해주었다. 내 코드 package com.company; import java.io.*; import java.util.*; public class Main { static int N; public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); N = Integer.parseInt(br.readLine()); ArrayList list = new ArrayList(); for (long i = 0; i < 10;..

    리모컨 - 1107번

    리모컨 - 1107번

    풀이 방법 BFS 방법으로 풀이했다. 게시판에 있던 테스트케이스는 모두 맞았는데 95퍼정도에서 틀렸다고 나와서 헤맸다. 방문한 채널을 확인하는 과정이 문제였다. 처음부터 방문했다고 체크하게 되면 101이 방문됐다고 확인되서 1011, 1012 같이 101 다음에 채널을 클릭하지 못해서 틀렸다고 풀이됐다. 그래서 3번째 부터 방문됐다고 확인해서 모두 가능하도록 했다. 내 코드 package com.company; import java.io.*; import java.util.*; public class Main { static int N, M; static int start = 100; static boolean[] visited; static ArrayList list = new ArrayList(); ..

    미친 로봇 - 1405번

    미친 로봇 - 1405번

    모든 경로를 확인하면서 백트레킹으로 단순하지 않은 경로를 찾아주었다. 자바에 지수형 표현을 제거하기 위해 BigDecimal을 사용했다. 내 코드 package com.company; import java.io.*; import java.math.BigDecimal; import java.util.*; public class Main { static int N; static int[][] way = {{-1, 0, 0}, {1, 0, 0}, {0, -1, 0}, {0, 1, 0}}; static int[][] table = new int[30][30]; static int x = 15; static int y = 15; static double answer = 0; public static void ma..

    음식 평론가 - 1188번

    음식 평론가 - 1188번

    내 코드 package com.company; import java.io.*; import java.util.*; public class Main { static double N, M; public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); StringTokenizer st = new StringTokenizer(br.readLine()); N = Double.parseDouble(st.nextToken()); M = Double.parseDouble(st.nextToken()); double x = N * M; int c..

    공약수 - 2436번

    공약수 - 2436번

    풀이 방법 유클리드 호제법 최소 공배수 = 두 자연수의 곱 / 최대 공약수 내 코드 package com.company; import java.io.*; import java.util.*; public class Main { static long A, B; public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); StringTokenizer st = new StringTokenizer(br.readLine()); A = Long.parseLong(st.nextToken()); B = Long.parseLong(st.nextT..

    수고르기 - 2230번

    수고르기 - 2230번

    풀이 방법 2개의 인덱스를 사용해서 풀이했다. 선택한 두 수의 차가 M보다 크다면 앞에 있는 인덱스를 증가시키고 그 값이 최소값인지 확인해 주었다. 작다면 뒤에 있는 인덱스를 증가 시키면서 확인해주었다. 내 코드 package com.company; import java.io.*; import java.util.*; public class Main { static long N, M; public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); StringTokenizer st = new StringTokenizer(br.read..