코딩테스트
![조이스틱](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fn20X3%2FbtrlM1SvArA%2FUjeQvLeCuZU9LsinfNr47K%2Fimg.png)
조이스틱
내 코드 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 <..
![등굣길](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FkSFxY%2FbtrlOWp9vgu%2FJLaS6OKP3PU2DCnmHRok9K%2Fimg.png)
등굣길
내 코드 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번](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FqdC3A%2FbtrlOWwiHeK%2FU17WHzcBklAGDHorGOYtBK%2Fimg.png)
미친 로봇 - 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번](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FUaLSD%2FbtrlNcME7Tp%2FD9HL01GctgBNX56dNQu30k%2Fimg.png)
음식 평론가 - 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으로 표현](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FekPcjS%2FbtrlEJwQbt7%2FXClC9FLsAEen58GVkw8vt1%2Fimg.png)
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번](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FppLcI%2FbtrlbEiOzeM%2FaZ08KzkMngmVFemM5rxgt1%2Fimg.png)
공약수 - 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번](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fcw0iA5%2Fbtrk1RX1uuo%2F0m3Mpum7AiQ7Bh2LtQJRKk%2Fimg.png)
수고르기 - 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..
![숫자고르기 - 2668번](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcJuqB0%2Fbtrku08lkVc%2FN0nA2B24p2EfZ5sPd8KrD0%2Fimg.png)
숫자고르기 - 2668번
내 코드 package com.company; import java.io.*; import java.util.*; public class Main { static int N; static boolean[] visited; static int[] arr; static HashSet set = new HashSet(); public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); N = Integer.parseInt(br.readLine()); arr = new int[N + 1]; for (int i = 1; i
![문자열 잘라내기 - 2866번](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdEH4Qt%2FbtrkiLqn91f%2FjYCK2SfKrYrIdd62zPGLSk%2Fimg.png)
문자열 잘라내기 - 2866번
풀이 방법 이분 탐색을 이용해서 풀이했다. mid값은 지운 열의 갯수라서 중복일 경우 right를 mid-1로 해줘서 더 위를 확인해주고 중복이 아니라면 지워질 수 있기 때문에 count값을 mid로 주고 left를 mid+1로 해줘서 더 지울 수 있는지 확인해주었다. 내 코드 package com.company; import java.io.*; import java.util.*; public class Main { static int R, C; public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); StringTokeni..
![줄어들지 않아 - 2688번](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FwXx4m%2FbtrklW5deri%2FeRuP2LLM6ejJ6oTtiJZg10%2Fimg.png)
줄어들지 않아 - 2688번
풀이 방법 dp를 이용해서 모든 자리 수의 개수를 구해주었다. 자릿수는 마지막 자릿수가 0,1,2....9 일 경우 따로 갯수를 구하고 더해서 총합을 구하는 방식을 사용했다. 마지막 자리가 0으로 나오는 경우는 0~9까지 모두 나오고 1로 나오는 경우는 1~9, 2로 나오는 경우는 3~9까지 나온다. 예를 들면 4자리수 중 마지막 자릿수가 0으로 나오는 수는 3자리 수의 모든 경우에서 나오고 1로 나오는 수는 3자리 수에서 마지막 자릿수가 1~9인 경우만 나오게 된다. 내 코드 package com.company; import java.io.*; import java.util.*; public class Main { static int T; public static void main(String[] ar..