자료구조3 [Java] 백준 11286 : 절대값 힙 https://www.acmicpc.net/problem/11286 11286번: 절댓값 힙 첫째 줄에 연산의 개수 N(1≤N≤100,000)이 주어진다. 다음 N개의 줄에는 연산에 대한 정보를 나타내는 정수 x가 주어진다. 만약 x가 0이 아니라면 배열에 x라는 값을 넣는(추가하는) 연산이고, x가 0 www.acmicpc.net 가장 작은 값을 출력하는 게 아니라 절댓값이 작은 수를 출력하는 문제이다. 그렇게 하기 위해서는 큐에 값을 담을 때 값을 비교해서 담도록 하면 된다. PriorityQueue pq= new PriorityQueue((o1,o2)->{ int abs1 =Math.abs(o1); int abs2 =Math.abs(o2); return abs1==abs2? Integer.compa.. 코딩테스트/백준 2023. 2. 16. 백준 1406 : 에디터 _자바 Java https://www.acmicpc.net/problem/1406 1406번: 에디터 첫째 줄에는 초기에 편집기에 입력되어 있는 문자열이 주어진다. 이 문자열은 길이가 N이고, 영어 소문자로만 이루어져 있으며, 길이는 100,000을 넘지 않는다. 둘째 줄에는 입력할 명령어의 개수 www.acmicpc.net 스택 두개를 선언을 해주고 커서가 왼쪽으로 움직이면 스택에 들어가 있는 문자를 오른쪽으로 옮겨주는 방식을 사용하여 문제 해결. import java.io.*; import java.util.*; public class Main { public static void main(String[] args) throws IOException{ BufferedReader br = new BufferedRead.. 코딩테스트/백준 2023. 1. 31. 백준 10799 : 쇠막대기 _자바 Java https://www.acmicpc.net/problem/10799 10799번: 쇠막대기 여러 개의 쇠막대기를 레이저로 절단하려고 한다. 효율적인 작업을 위해서 쇠막대기를 아래에서 위로 겹쳐 놓고, 레이저를 위에서 수직으로 발사하여 쇠막대기들을 자른다. 쇠막대기와 레이저 www.acmicpc.net 1. '('는 쇠막대기의 시작을 의미 2. ')'는 쇠막대기의 끝을 의미 3. 연속된 "()"는 레이저를 의미 '('일때 스택에 add 해주고, ')'라면 이전의 괄호가 '('이면 레이저를 의미하므로 시작한 레이저의 수 만큼 카운트 해서 잘린 막대기 수를 추가해 준다. -1을 해준 것은 레이저를 의미하는 괄호가 스택에 들어 갔기 때문에 빼준것이다. 먼저 pop 해주고 그냥 사이즈만큼 더해줘도 된다. 그리고 .. 코딩테스트/백준 2023. 1. 28. 이전 1 다음