문제 https://www.acmicpc.net/problem/1927 1927번: 최소 힙 첫째 줄에 연산의 개수 N(1 ≤ N ≤ 100,000)이 주어진다. 다음 N개의 줄에는 연산에 대한 정보를 나타내는 정수 x가 주어진다. 만약 x가 자연수라면 배열에 x라는 값을 넣는(추가하는) 연산이고, x가 0 www.acmicpc.net 풀이 힙을 이용해야 하는 문제이다. Java에서 제공하는 클래스 중 PriorityQueue라는 힙으로 구현된 클래스가 있다. 얘를 쓰면 되겠다! FIFO나 LIFO구조가 아닌, 우선순위가 높은 데이터가 먼저 나가게 되는 구조이다. PriorityQueue의 기본설정은 작은 값이 우선순위가 높아서 추가적인 메소드가 필요 없지만, 우선순위를 큰 값으로 바꾸려면 Compara..
문제 https://www.acmicpc.net/problem/1874 1874번: 스택 수열 1부터 n까지에 수에 대해 차례로 [push, push, push, push, pop, pop, push, push, pop, push, push, pop, pop, pop, pop, pop] 연산을 수행하면 수열 [4, 3, 6, 8, 7, 5, 2, 1]을 얻을 수 있다. www.acmicpc.net 풀이 import java.util.*; import java.io.*; public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStrea..
문제 https://www.acmicpc.net/problem/1021 1021번: 회전하는 큐 첫째 줄에 큐의 크기 N과 뽑아내려고 하는 수의 개수 M이 주어진다. N은 50보다 작거나 같은 자연수이고, M은 N보다 작거나 같은 자연수이다. 둘째 줄에는 지민이가 뽑아내려고 하는 수의 위치가 www.acmicpc.net 풀이 앞뒤로 삽입, 삭제가 가능하다 => Deque 개념 활용 큐에 처음 포함되어 있던 수 = 큐의 크기 = N => 큐에 1~N까지 삽입한다. M개만큼 뽑아낼 값을 입력받는다. 연산의 최소값을 구한다. 큐의 가운데 인덱스를 기준으로 구하려는 값이 가운데보다 왼쪽에 존재할 경우, 큐를 왼쪽으로 한 칸씩 이동 왼쪽으로 이동하다가 원하는 값이 나오면 반복 종료 후 poll 가운데보다 오른쪽에..
문제 https://www.acmicpc.net/problem/1011 1011번: Fly me to the Alpha Centauri 우현이는 어린 시절, 지구 외의 다른 행성에서도 인류들이 살아갈 수 있는 미래가 오리라 믿었다. 그리고 그가 지구라는 세상에 발을 내려 놓은 지 23년이 지난 지금, 세계 최연소 ASNA 우주 비행 www.acmicpc.net 풀이 표를 그려서 규칙성을 찾아내보자는 생각에 표그리기 까지는 성공했지만,,! 결국 식은 세우지 못해서 다른 분들의 풀이를 참고했다,, 거리(Y-X) 이동량 횟수 최대이동량 1 1 1 1 2 1 1 2 1 3 1 1 1 3 1 4 1 2 1 3 2 5 1 2 1 1 4 2 6 1 2 2 1 4 2 7 1 1 2 2 1 5 2 8 1 2 2 2 1 ..
문제 https://www.acmicpc.net/problem/2439 2439번: 별 찍기 - 2 첫째 줄에는 별 1개, 둘째 줄에는 별 2개, N번째 줄에는 별 N개를 찍는 문제 하지만, 오른쪽을 기준으로 정렬한 별(예제 참고)을 출력하시오. www.acmicpc.net 풀이 N이 5일 때 출력되는 모습은 다음과 같다. * // 공백 4개 별 1개 ** // 공백 3개 별 2개 *** // 공백 2개 별 3개 **** // 공백 1개 별 4개 ***** // 공백 0개 별 5개 for문을 돌 때마다 공백이 줄어든 만큼 별이 늘어난다. Java 11부터 추가된 String 메서드인 repeat()을 사용했다. repeat()은 Arrays.fill() & System.arraycopy()를 통해서 새로..