목록코딩 테스트/백준 (139)
미소를뿌리는감자의 코딩
https://www.acmicpc.net/problem/1021 1021번: 회전하는 큐 첫째 줄에 큐의 크기 N과 뽑아내려고 하는 수의 개수 M이 주어진다. N은 50보다 작거나 같은 자연수이고, M은 N보다 작거나 같은 자연수이다. 둘째 줄에는 지민이가 뽑아내려고 하는 수의 위치가 www.acmicpc.net 1. 접근 방법 이번 문제는 왼쪽으로 돌려서 원하는 수를 찾을 것인지, 오른쪽으로 돌려서 원하는 수를 찾을 것인지가 쟁점인 문제였다. 더불어서, 1) pop을 하는 방식은 원하는 원소를 뽑아내려고 할 때만 사용이 될 것이라, 하나의 부품으로 보고 접근하였다. 방향을 결정하는 방법으로, 원하는 값의 위치가 길이/2을 기준으로 왼쪽에 있느냐 오른쪽이 있느냐 였다. ~~~~?~~ | ~~~~~~ 찾..
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 1. 접근 방법 첫 번째, 예시를 예로 들어보자. 우선 구하고자 하는 순서를 배열로 만든다. 예제 입력 1을 예시로 하여 보자.)배열 A = [ 4, 3, 6, 8, 7, 5, 2, 1] 로 구성될 것이다. 다음으로, stack을 [1, 2, 3, 4, 5, 6, 7, 8] 로 구성하여, 1이 제일 위에 오도록 한다..
https://www.acmicpc.net/problem/18258 18258번: 큐 2 첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 2,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지 www.acmicpc.net 1. 접근 방법 이 문제를 보자마자 double ended queue가 Java에 구현되어 있다면 얼마나 좋을까.. 라고 생각하였다! 바로~ chatGPT에게 구현 여부를 물어보았고, 구현되어 있음을 알 수 있었다. (야호~) 따라서 전체적인 구조는 10828번 구조를 다시 가지고 왔으며, import java.util.Deque; import java.util.Array..
https://www.acmicpc.net/problem/10773 10773번: 제로 첫 번째 줄에 정수 K가 주어진다. (1 ≤ K ≤ 100,000) 이후 K개의 줄에 정수가 1개씩 주어진다. 정수는 0에서 1,000,000 사이의 값을 가지며, 정수가 "0" 일 경우에는 가장 최근에 쓴 수를 지우고, 아닐 경 www.acmicpc.net 1. 접근 방법 이번 문제를, stack으로 접근할까 고민을 하다가, 그냥 List로 구현하는 것이 sum을 구하기가 편리할 것이라는 생각이 들어서 list로 구현하였다. 2. 코드 import java.io.BufferedReader; import java.io.InputStreamReader; import java.io.IOException; import ja..