https://www.acmicpc.net/problem/1697계산을 통해서 2배할지 한 칸씩 움직일지 하는 것은 최적의 해를 보장하지 않기 때문에, BFS를 사용해야 한다.또한 이전에 방문한 좌표일 경우, 이전의 시간보다 오래 걸린 후 방문이라면 저장하지 deque에 저장하지 않는다.이전에 방문했는데 시간이 준 경우일 때 deque에 추가하고, 시간도 업데이트 한다.수의 범위가 십만이므로 해당 사이즈에 맞는 배열을 만들어 사용하였다. (n, k 누가 큰 지 모름!!!)또한 좌표의 범위가 0에서 십만 사이를 넘지 않도록 중간에 조건을 꼭 넣어주어야 한다!! 나는 이 오류를 잡지 못해서 IndexOutOfBounds로 고생함..import java.io.BufferedReader;import java.i..
https://www.acmicpc.net/problem/2231한 자릿수를 처리해 주는 것이 관건이다.한 자릿수가 들어올 경우, 짝수면 n/2인 수로 구성될 수 있기 때문에 n/2를 출력하고, 홀수면 불가능하기때문에 0을 출력해야 한다! 아래 반복문을 시작하기 전에 분기가 갈리게 하였다.import java.io.BufferedReader;import java.io.InputStreamReader;public class Main { public void solution() throws Exception{ BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); int n = Integer.parse..
https://www.acmicpc.net/problem/18110입력된 숫자를 정렬한 후, 개수의 15퍼씩 앞뒤로 제외한 뒤 중간의 수들을 평균내면 된다!import java.io.BufferedReader;import java.io.InputStreamReader;import java.util.Arrays;public class Main { public void solution() throws Exception{ BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); int n = Integer.parseInt(br.readLine()); // 의견 수 int[] arr = new ..
https://www.acmicpc.net/problem/1966import java.io.BufferedReader;import java.io.InputStreamReader;import java.util.*;public class Main { public void solution() throws Exception{ BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); int t = Integer.parseInt(br.readLine()); StringBuilder sb = new StringBuilder(); StringTokenizer st; int n,..
https://www.acmicpc.net/problem/18111브루트포스를 사용한 문제높이별 블록 개수와 최대/최소 높이를 저장모든 최소높이 이상 최대높이 이하의 높이에 대해서 최소 시간 과 가능 여부를 따짐가능 여부를 따진다는 것은, 인벤토리에 남은 블록이 음수가 되지 않는지 확인하는 것O(NM)의 시간복잡도import java.io.*;import java.util.*;public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); StringTokenizer..
https://www.acmicpc.net/problem/10184중 for문...이라 시간복잡도는 별루지만 n,m이 최대 50이니까 사용하였다!import java.io.BufferedReader;import java.io.InputStreamReader;import java.util.*;public class Main { public void solution() throws Exception{ BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); StringTokenizer st = new StringTokenizer(br.readLine()); int n = Integer.par..
https://www.acmicpc.net/problem/10814문제온라인 저지에 가입한 사람들의 나이와 이름이 가입한 순서대로 주어진다. 이때, 회원들을 나이가 증가하는 순으로, 나이가 같으면 먼저 가입한 사람이 앞에 오는 순서로 정렬하는 프로그램을 작성하시오.입력첫째 줄에 온라인 저지 회원의 수 N이 주어진다. (1 ≤ N ≤ 100,000)둘째 줄부터 N개의 줄에는 각 회원의 나이와 이름이 공백으로 구분되어 주어진다. 나이는 1보다 크거나 같으며, 200보다 작거나 같은 정수이고, 이름은 알파벳 대소문자로 이루어져 있고, 길이가 100보다 작거나 같은 문자열이다. 입력은 가입한 순서로 주어진다.출력첫째 줄부터 총 N개의 줄에 걸쳐 온라인 저지 회원을 나이 순, 나이가 같으면 가입한 순으로 한 줄에..
문제세준이는 양수와 +, -, 그리고 괄호를 가지고 식을 만들었다. 그리고 나서 세준이는 괄호를 모두 지웠다.그리고 나서 세준이는 괄호를 적절히 쳐서 이 식의 값을 최소로 만들려고 한다.괄호를 적절히 쳐서 이 식의 값을 최소로 만드는 프로그램을 작성하시오.입력첫째 줄에 식이 주어진다. 식은 ‘0’~‘9’, ‘+’, 그리고 ‘-’만으로 이루어져 있고, 가장 처음과 마지막 문자는 숫자이다. 그리고 연속해서 두 개 이상의 연산자가 나타나지 않고, 5자리보다 많이 연속되는 숫자는 없다. 수는 0으로 시작할 수 있다. 입력으로 주어지는 식의 길이는 50보다 작거나 같다. 출력첫째 줄에 정답을 출력한다. 풀이 방법플러스 부호는 사실상 없는 기호이고, 마이너스 기호일 때가 괄호를 쳤을 때 중요하다. 마이너스 기호를 ..
import java.io.BufferedReader;import java.io.InputStreamReader;import java.util.StringTokenizer;public class Main { public static StringBuilder ans = new StringBuilder(); public void solution() throws Exception{ BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); StringTokenizer st = new StringTokenizer(br.readLine()); int n = Integer.parseInt(st...