목록코딩 테스트/백준 (139)
미소를뿌리는감자의 코딩
https://www.acmicpc.net/problem/11866 11866번: 요세푸스 문제 0 첫째 줄에 N과 K가 빈 칸을 사이에 두고 순서대로 주어진다. (1 ≤ K ≤ N ≤ 1,000) www.acmicpc.net 1. 접근 방법 이번 문제의 경우, 1021번 (회전하는 큐) 문제와 유사하다고 생각이 들었다. 이는 1021번 보다는 더 쉬운 문제라는 생각이 들었다. 왜냐하면, 1021번 문제의 경우 돌리는 방향을 왼쪽 or 오른쪽으로 결정해줘야 하는 문제가 있었는데, 이번 문제는 한 방향으로 돌리고, 돌리는 횟수도 정해져 있기 때문이다. 처음 코드를 작성하고 출력하여 보았을 때, 처음 숫자를 제외하고 잘 작성이 되지 않아 어떤 부분을 놓쳤나 확인해 보니, 원하는 값을 출력하기 위해, dequ..
https://www.acmicpc.net/problem/11279 11279번: 최대 힙 첫째 줄에 연산의 개수 N(1 ≤ N ≤ 100,000)이 주어진다. 다음 N개의 줄에는 연산에 대한 정보를 나타내는 정수 x가 주어진다. 만약 x가 자연수라면 배열에 x라는 값을 넣는(추가하는) 연산이고, x가 0 www.acmicpc.net 1. 접근 방법 해당 문제의 경우 Java에서 최대 힙의 구현 여부를 물어보았다. max heap 은 구현되어 있지 않으나, min heap이 구현되어 있어 이를 사용하면 될 것이라고 하였다. 그렇게 0의 값이 들어온다면, max heap의 루트를 출력해 주었고, 아니라면, max heap에 넣어주었다. 최대 힙의 경우 다음과 같이 선언하고 사용해 주면 되었다. Priori..
https://www.acmicpc.net/problem/4949 4949번: 균형잡힌 세상 각 문자열은 마지막 글자를 제외하고 영문 알파벳, 공백, 소괄호("( )"), 대괄호("[ ]")로 이루어져 있으며, 온점(".")으로 끝나고, 길이는 100글자보다 작거나 같다. 입력의 종료조건으로 맨 마지막에 www.acmicpc.net 1. 접근 방법 이 문제는 보자마자, ()[]. 을 분리해 내야겠다고 생각이 들었다. 사실 알파벳 같은 경우에는, 따로 고려해야할 부분이 없다고 생각하였기 때문이다. 따라서 ChatGPT 에서 예시문장을 주고, ()[]. 을 분리해 낼 방법을 물어보았다. Pattern 및 matcher class를 사용하면 될 것이라고 하였다. BufferedReader reader = ne..
https://www.acmicpc.net/problem/9012 9012번: 괄호 괄호 문자열(Parenthesis String, PS)은 두 개의 괄호 기호인 ‘(’ 와 ‘)’ 만으로 구성되어 있는 문자열이다. 그 중에서 괄호의 모양이 바르게 구성된 문자열을 올바른 괄호 문자열(Valid PS, VPS)이라고 www.acmicpc.net 1. 접근 방법 해당 문제는 자료 구조 시간에 배웠던 것이어서 바로 접근할 수 있었다. 우선 문자열들을 받아서, 분리하여 stack에 넣어주었다. 이후 위에서 부터 하나씩 pop을 하여, ")" 가 출력되게 된다면, right변수 +=1 을 해주었고 "("가 출력되게 된다면 right 변수 -=1을 해주었다. 하지만 만약 right 변수가 0이어서 빼주게 된다면 음수..