목록Study/Problem Solving (163)
전공공부
설명 맞왜틀을 계속 시도했었던 문제 TestCase 새로 시작되면서 map을 당연히 초기화 해야하는데 그 생각을 못하고 계속 12%에서 틀렸었다. 어쨌든 Red Black Tree를 사용하는 TreeMap API를 활용하여서 OlogN으로 찾을 수 있었다. 또한, 최대 값과 최솟 값을 가져오기 정상적으로 가져오기 위해서 같은 수가 두 번 이상 들어올 때와 아예 사라질때 remove가 될때를 주의해서 구현하였다. 코드 package Data_Structure; import java.io.BufferedReader; import java.io.InputStreamReader; import java.util.StringTokenizer; import java.util.TreeMap; public class B..
설명 N번째로 들어오는 큰 수를 구하면되므로 사실 상 크게 고려할 필요 없이 최소힙을 사용해서 N*N 크기의 값을 받아오면서 N 사이즈 이상일때 빼고 그것을 마지막까지 반복하면 마지막에 남은 값이 N번째로 큰 수가 된다. 코드 package Data_Structure; import java.io.BufferedReader; import java.io.InputStreamReader; import java.util.Comparator; import java.util.PriorityQueue; import java.util.StringTokenizer; public class BOJ_2075 { public static void main(String[] args) throws Exception{ Buffer..
설명 내가 짠 코드이지만 찝찝하다. 4 5 4 3 1 6 1 9 1 입력시 사실 NO가 나와야하는데 YES가 나오는 코드이다. 지금 들어오는 첫번째의 케이스와 마지막 케이스가 접점이 존재하는데 맞았다는 케이스로 뜨게 된다. 내가 생각을 잘 못하고 있는건지 잘 파악이 되지 않아서 공유한다. 아래 코드는 PriorityQueue 즉 최소힙을 활용하였고 Comparable로 맨 앞에 스타팅 지점 기준으로 오름차순 정렬하였다. 코드 package Data_Structure; import java.util.*; import java.io.*; public class BOJ_22942 { static class Data implements Comparable{ int start; int end; int r; pub..
별도 설명은 필요하지 않은듯 하여 코드만 남긴다. package Simulation; import java.util.Scanner; public class BOJ_19532 { public static void main(String[] args) throws Exception{ Scanner sc = new Scanner(System.in); int a = sc.nextInt(); int b = sc.nextInt(); int c = sc.nextInt(); int d = sc.nextInt(); int e = sc.nextInt(); int f = sc.nextInt(); for(int x = -999; x
설명 구현 문제 코드 package Simulation; import java.util.*; public class BOJ_2231 { public static void main(String[] args) throws Exception{ Scanner sc = new Scanner(System.in); int N = sc.nextInt(); for(int i = 1; i < N; i++){ String str = String.valueOf(i); char [] crr = str.toCharArray(); int tmp = i; for(char c : crr){ tmp += (c - '0'); } if(tmp == N){ System.out.println(str); return; } } System.out..
설명 블랙잭이 원래 21까지 넘으면 안 되는 건 줄 알고 M 보다 크거나 같을 경우 분기처리를 했더니 많이 틀렸다. 코드 import java.io.*; import java.util.*; public class Main { static int N,M,ans; public static void main(String[] args) throws Exception{ BufferedReader in = new BufferedReader(new InputStreamReader(System.in)); StringTokenizer tk = new StringTokenizer(in.readLine()," "); N = Integer.parseInt(tk.nextToken()); M = Integer.parseInt(t..
설명 마지막에 처리 부분이 힘들었다. 조건문이 str == null 으로 들어가게 해야 런타임 Exception을 배제한다. 코드 package Data_Structure; import java.io.*; import java.util.*; public class BOJ_4358 { public static void main(String[] args) throws Exception{ BufferedReader in = new BufferedReader(new InputStreamReader(System.in)); Map map = new LinkedHashMap(); double cnt = 0; while(true){ String str = in.readLine(); if(str == null){ bre..
설명 PriorityQueue가 최소 힙이니 이를 반대로 Comparator를 이용해서 내림차순으로 구현해서 풀었다. 코드 package Data_Structure; import java.util.*; import java.io.*; public class BOJ_11279 { public static void main(String[] args) throws Exception{ BufferedReader in = new BufferedReader(new InputStreamReader(System.in)); int N = Integer.parseInt(in.readLine()); PriorityQueue pq = new PriorityQueue(new Comparator() { @Override publ..