코딩테스트

    호텔 - 1106번

    호텔 - 1106번

    내 코드 package com.company; 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 st = new StringTokenizer(br.readLine()); int C = Integer.parseInt(st.nextToken()); int N = Integer.parseInt(st.nextToken()); int[] dp = new int[1101]; Arrays.fill(d..

    문제 추천 시스템 Version 1 - 21939번

    문제 추천 시스템 Version 1 - 21939번

    풀이 방법 TreeSet을 이용해서 최댓값, 최솟값을 쉽게 구하고자 했다. 배열에는 각 문제의 난이도를 저장해서 TreeSet에서 제거할 때 사용했다. 내 코드 package com.company; 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 st = null; int N = Integer.parseInt(br.readLine()); int[] arr = new int[100001]..

    플로이드 2 - 11780번

    플로이드 2 - 11780번

    풀이 방법 플로이드 와샬 문제로 먼저 각 도시마다 최소 비용을 구해주었다. 구해주면서 경로를 알아야 하기 때문에 i -> j로 이동할때 가장 먼저 만나는 도시를 저장해주었다. 가장 먼저 만나는 도시를 이용해서 이동경로를 찾아주었다. 내 코드 package com.company; import java.io.*; import java.util.*; public class Main { static int N, M; static int[][][] arr; static ArrayList list = new ArrayList(); public static void main(String args[]) throws IOException { BufferedReader br = new BufferedReader(new I..

    최소 회의실 개수 - 19598번

    최소 회의실 개수 - 19598번

    풀이 방법 문제를 이해하는 과정에서 굳이 한 회의의 시작시간과 종료시간을 함께 묶어서 볼 필요가 없다고 생각했다. 그래서 시간대 별로 나열하고 그 시간이 시작시간인지 종료시간인지 표시해두었다. 같은 시간대일 경우를 고려해서 같으면 한번에 계산을 해주고 시작시간이면 count를 1증가시키고 종료시간이면 count를 1 감소해 주었다. 내 코드 package com.company; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.Arrays; import java.util.StringTokenizer; public class Main { static int N;..

    가장 긴 바이토닉 부분 수열 - 11054번

    가장 긴 바이토닉 부분 수열 - 11054번

    풀이 방법 각 원소들마다 양쪽을 기준으로 최장 부분 수열을 개수를 구해주었다. 각 dp에 저장된 값을 이용해서 바이토닉 부분 수열을 구할 수 있다. 내 코드 package com.company; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.StringTokenizer; public class Main { static int N; static int[] arr, dp1, dp2; public static void main(String args[]) throws IOException { BufferedReader br = new BufferedReader(n..

    스타트택시 - 19238번

    스타트택시 - 19238번

    풀이 방법 bfs를 이용해서 풀이했다. 이 문제에서 생각해야 할게 각 손님마다 출발지와 목적지는 다르고 출발지는 각각 다르다는 말이다. 결국 손님들의 목적지는 같을 수 있고 한 손님의 출발지가 다른 손님의 목적지가 되는 경우가 생긴다. 이 경우만 고려해서 잘 풀어주면 된다. 내 코드 package com.company; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.HashMap; import java.util.PriorityQueue; import java.util.StringTokenizer; public class Main { static int[][..

    소수상수근 - 9421번

    소수상수근 - 9421번

    내 코드 package com.company; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.HashSet; import java.util.Stack; import java.util.StringTokenizer; public class Main { static HashSet set = new HashSet(); public static void main(String args[]) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); int N..

    스카이라인 쉬운거 - 1863번

    스카이라인 쉬운거 - 1863번

    풀이 방법 스택을 이용해서 높이가 낮아질 때 마다 건물의 개수를 세어주었다. 스택에 현재 바뀐 높이보다 높은 건물을 모두 세어주면 된다. 내 코드 package com.company; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.Stack; import java.util.StringTokenizer; public class Main { public static void main(String args[]) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(Sys..

    불 - 5427번

    불 - 5427번

    내 코드 package com.company; import java.io.BufferedReader; import java.io.InputStreamReader; import java.util.LinkedList; import java.util.PriorityQueue; import java.util.Queue; import java.util.StringTokenizer; public class Main { static char[][] arr; static int w, h, time; static Queue fireQ = new LinkedList(); static PriorityQueue pq = new PriorityQueue(); static int[][] way = {{0, 1}, {0, -1},..

    월드컵 - 6987번

    월드컵 - 6987번

    풀이 방법 처음엔 그냥 승 패를 비교하고 무승부일경우 따로 고려해서 풀이했는데 올바른 풀이가 아니었다. 고려해야 할 게 각 팀들은 중복없이 다른 팀들과 경기를 해야하고 같은 팀과 두번 이상 할 수 없다. 그래서 총 경기수는 30번이 된다. 이를 고려해서 dfs로 풀이했다. 내 코드 package com.company; import java.io.BufferedReader; import java.io.InputStreamReader; import java.util.StringTokenizer; public class Main { static int[][] arr; static boolean check; static int[] teamA = {0, 0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, ..