코딩테스트

    감소하는 수 - 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;..

    구명보트

    구명보트

    최대 2명이라는 조건을 보지 못해서 잘못된 풀이를 하고 있었다.. 풀이 방법 정렬해준 다음 최대 2명이라서 가장 작은 사람과 가장 큰 사람을 묶어서 생각했다. 두 사람이 limit를 초과하면 큰사람만 계산해 주었다. 내 코드 import java.util.*; class Solution { public int solution(int[] people, int limit) { int answer = 0; int n = people.length; Arrays.sort(people); int left = 0; int right = n - 1; while(left

    리모컨 - 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(); ..

    조이스틱

    조이스틱

    내 코드 import java.util.*; class Solution { public int solution(String name) { int answer = 0; int cnt = 0; int len = name.length(); int[] arr = new int[len]; for(int i = 0; i 13) arr[i] = 26 - x; else arr[i] = x; answer += arr[i]; if(arr[i] != 0) cnt++; } int index = 0; int start = 0; if(arr[0] != 0){ start = 1; arr[0] = 0; } for(int i = start; i <..

    등굣길

    등굣길

    내 코드 import java.util.*; class Solution { public int solution(int m, int n, int[][] puddles) { int[][] arr = new int[m + 1][n + 1]; arr[0][1] = 1; for(int i = 0; i< puddles.length; i++){ arr[puddles[i][0]][puddles[i][1]] = -1; } for(int i = 1; i

    미친 로봇 - 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..

    N으로 표현

    N으로 표현

    내 코드 import java.util.*; class Solution { public int solution(int N, int number) { int temp = 0; ArrayList list = new ArrayList(); for(int i = 0; i < 9; i++){ list.add(new ArrayList()); list.get(i).add(temp); temp = temp * 10 + N; } for(int i = 1; i < 9; i++){ for(int j = 1; j < i; j++){ for(int k = 0; k < list.get(j).size(); k++){ for(int u = 0; u < list.get(i - j).size(); u++){ list.get(i).add..

    공약수 - 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..