투포인터 3

[Java] 백준 2531번 : 회전 초밥

문제 https://www.acmicpc.net/problem/2531 2531번: 회전 초밥 첫 번째 줄에는 회전 초밥 벨트에 놓인 접시의 수 N, 초밥의 가짓수 d, 연속해서 먹는 접시의 수 k, 쿠폰 번호 c가 각각 하나의 빈 칸을 사이에 두고 주어진다. 단, 2 ≤ N ≤ 30,000, 2 ≤ d ≤ 3,000, 2 ≤ www.acmicpc.net 풀이과정 각 번호별로 먹은 횟수를 1차원 배열에 기록했다. 여기서 인덱스는 음식의 번호를 의미한다. 이 문제에서는 K개라는 window크기가 정해져있으므로 window를 한칸씩 오른쪽으로 움직여가며 값을 계산했다. window가 옮겨질 때는 window맨 첫번째 수를 빼주고 다음 수를 하나 더해주는 방식으로 진행한다. import java.io.Buff..

[Java] 백준 1253번 : 좋다*

문제 https://www.acmicpc.net/problem/1253 1253번: 좋다 첫째 줄에는 수의 개수 N(1 ≤ N ≤ 2,000), 두 번째 줄에는 i번째 수를 나타내는 Ai가 N개 주어진다. (|Ai| ≤ 1,000,000,000, Ai는 정수) www.acmicpc.net 풀이 과정 처음에는 Ai 범위를 양수로 보고 2중 for문과 집합을 사용해서 풀었다. 하지만, Ai는 음의 정수, 0, 양의 정수를 모두 포함하기 때문에, 0 + 자기자신으로 true를 반환해서 틀렸다. 범위를 다시 파악하고 나서는 배열을 정렬한 후, 가장 왼쪽 값과 가장 오른쪽 값을 더해가면서 값이 현재값보다 작으면 더 큰 수를 더해줘야 하므로 left+1을 해주고, 크면 right-1을 하여 가능할 것 같은 값만 빠..

[Java] 백준 5577번 : RBY팡!

1. 문제 https://www.acmicpc.net/problem/5577 5577번: RBY팡! 세로로 N개의 공이 붙어있으며, 각 공의 색은 R(빨강), B(파랑), Y(노랑) 중 하나이다. 플레이어는 한 공의 색을 다른 색으로 바꿀 수 있다. 이러한 변환을 거쳐 동일한 색의 공이 4개 이상 연속되면 www.acmicpc.net 2. 풀이과정 1. 입력을 받으면서 같은 수 끼리 이어진 개수를 2차원 배열 (값, 개수)로 기록한다. ex) 1113221 => {{1, 3}, {3, 1}, {2, 2}, {1, 1}} 2. 개수를 센 배열을 순차적으로 접근하면서 simulation을 한다. 최소로 하기 위해서는 같은 색이 이어진 곳 중간을 굳이 다른 색으로 바꿀 필요가 없다. 따라서, 지금 접근한 공의..