Priority Queue (우선순위 큐) 우선순위 큐는 각 각의 원소들이 우선순위를 갖고 있는 큐이다. 높은 우선순위를 가진 원소는 낮은 우선순위를 가진 원소보다 먼저 처리된다. 두 원소의 우선순위가 동일하다면, 먼저 삽입된 원소부터 처리된다. 그리고 우선순위는 아래와 같은 원칙을 가지고 있다. 1. 모든 정점은 자신의 자식 정점보다 우선순위가 크다. 루트 정점이 가장 큰 우선순위를 가지고 있다. 2. 완전 이진트리의 형태이다. 3. 우선 순위가 가장 큰 값이 우선적으로 pop() 된다. (루트정점) Priority Queue (우선순위 큐) 동작 순서 (1) 삽입 1. 우선순위큐는 완전이진 트리의 형식을 이룬다. 2. '25' 라는 정점이 삽입되면, 완전 이진트리 형식에 맞추어 삽입된다. 3. 정점은..
1. Java 구현 package Q15894; import java.math.BigInteger; import java.util.Scanner; public class Main { public static void main(String[] args) { System.out.println(new BigInteger(new Scanner(System.in).nextLine()).multiply(new BigInteger("4")) + "\n"); } } 2. 코드설명 이 문제는 규칙성 발견과 큰 출력값을 표현할 수 있는 것이 가장 중요한 요소이다. 우선 규칙성을 말하자면 "입력값 * 4 == 결과값" 이다. 1 -> 4 이고, 2 -> 8 이고, 3 -> 12 이고, .... 이다. 왜인지는 직접 그림을 ..
1. Java 구현 (1) 메모리 초과 사례 - 이중배열 package test; import java.io.*; import java.math.BigInteger; import java.util.*; public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out)); StringBuilder sb = new StringBuilder(); int n = Integer..
1. Java 구현 import java.io.*; import java.math.BigInteger; import java.util.*; public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out)); StringBuilder sb = new StringBuilder(); int n = Integer.parseInt(br.readLine()); for(int i..
1. Java 구현 import java.io.*; import java.util.*; public class Main { public class Pair implements Comparable { private int x; private int y; public Pair(int x, int y) { this.x = x; this.y = y; } @Override public int compareTo(Pair o) { if(this.y > o.y) { return 1; } else if(this.y == o.y && this.x > o.x) { return 1; } else if(this.y == o.y && this.x < o.x) { return -1; } else if(this.y < o.y) { ..
1. Java 구현 import java.io.*; public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out)); int n = Integer.parseInt(br.readLine()); long[] arr = new long[90 + 1]; arr[1] = 2; arr[2] = 1; for(int i = 3; i 0 - 1; j--) { arr[i] += ar..
1. Java 구현 import java.io.*; import java.util.Random; public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out)); String first = br.readLine(); String second = br.readLine(); boolean[][] visited = new boolean[1000][1000]; int[][..
1. Java 구현 package Q1977; import java.io.*; public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out)); int m = (int)Math.ceil(Math.sqrt(Double.parseDouble(br.readLine()))); int n = (int)Math.sqrt(Double.parseDouble(br.readLine(..
1. Java 구현 import java.io.*; import java.util.*; public class Main { public static void main(String[] args) throws NumberFormatException, IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out)); StringBuilder sb = new StringBuilder(); int n = Integer.parseInt(br.readLine()); for(int i = 0; ..
1. Java 구현 package Q1024; import java.io.*; public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out)); String[] input = br.readLine().split(" "); int N = Integer.parseInt(input[0]); int L = Integer.parseInt(input[1]); boolean f..