Priority Queue (우선순위 큐) 우선순위 큐는 각 각의 원소들이 우선순위를 갖고 있는 큐이다. 높은 우선순위를 가진 원소는 낮은 우선순위를 가진 원소보다 먼저 처리된다. 두 원소의 우선순위가 동일하다면, 먼저 삽입된 원소부터 처리된다. 그리고 우선순위는 아래와 같은 원칙을 가지고 있다. 1. 모든 정점은 자신의 자식 정점보다 우선순위가 크다. 루트 정점이 가장 큰 우선순위를 가지고 있다. 2. 완전 이진트리의 형태이다. 3. 우선 순위가 가장 큰 값이 우선적으로 pop() 된다. (루트정점) Priority Queue (우선순위 큐) 동작 순서 (1) 삽입 1. 우선순위큐는 완전이진 트리의 형식을 이룬다. 2. '25' 라는 정점이 삽입되면, 완전 이진트리 형식에 맞추어 삽입된다. 3. 정점은..
프로그래머스 2단계 타겟넘버 문제 url : https://programmers.co.kr/learn/courses/30/lessons/43165 문제설명n개의 음이 아닌 정수가 있습니다. 이 수를 적절히 더하거나 빼서 타겟 넘버를 만들려고 합니다. 예를 들어 [1, 1, 1, 1, 1]로 숫자 3을 만들려면 다음 다섯 방법을 쓸 수 있습니다. -1+1+1+1+1 = 3+1-1+1+1+1 = 3+1+1-1+1+1 = 3+1+1+1-1+1 = 3+1+1+1+1-1 = 3 사용할 수 있는 숫자가 담긴 배열 numbers, 타겟 넘버 target이 매개변수로 주어질 때 숫자를 적절히 더하고 빼서 타겟 넘버를 만드는 방법의 수를 return 하도록 solution 함수를 작성해주세요. 제한사항주어지는 숫자의 개..
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 이고, .... 이다. 왜인지는 직접 그림을 ..
프로그래머스 2단계 숫자야구 문제 url : https://programmers.co.kr/learn/courses/30/lessons/42584?language=java 문제설명숫자 야구 게임이란 2명이 서로가 생각한 숫자를 맞추는 게임입니다. 각자 서로 다른 1~9까지 3자리 임의의 숫자를 정한 뒤 서로에게 3자리의 숫자를 불러서 결과를 확인합니다. 그리고 그 결과를 토대로 상대가 정한 숫자를 예상한 뒤 맞힙니다. * 숫자는 맞지만, 위치가 틀렸을 때는 볼 * 숫자와 위치가 모두 맞을 때는 스트라이크예를 들어, 아래의 경우가 있으면 A : 123B : 1스트라이크 1볼.A : 356B : 1스트라이크 0볼.A : 327B : 2스트라이크 0볼.A : 489B : 0스트라이크 1볼. 이때 가능한 답은 ..
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(..