알고리즘/BOJ

백준 2531번 회전초밥

꾸준함. 2020. 4. 26. 03:16

문제 링크입니다: https://www.acmicpc.net/problem/2531

 

2531번: 회전 초밥

첫 번째 줄에는 회전 초밥 벨트에 놓인 접시의 수 N, 초밥의 가짓수 d, 연속해서 먹는 접시의 수 k, 쿠폰 번호 c가 각각 하나의 빈 칸을 사이에 두고 주어진다. 단, 2 ≤ N ≤ 30,000, 2 ≤ d ≤ 3,000, 2 ≤ k ≤ 3,000 (k ≤ N), 1 ≤ c ≤ d이다. 두 번째 줄부터 N개의 줄에는 벨트의 한 위치부터 시작하여 회전 방향을 따라갈 때 초밥의 종류를 나타내는 1 이상 d 이하의 정수가 각 줄마다 하나씩 주어진다. 

www.acmicpc.net

모듈러 연산을 잘 사용해야 하는 문제였습니다.

i = 0부터 탐색을 진행하기 때문에 0 이전 즉, (N - k) ~ (N - 1) 인덱스 내의 초밥의 종류 개수부터 구했습니다.(빨간 박스 참고)

이후부터는 (N - k) 번째에 속한 스시의 종류 개수를 1 감소하고 0 번째에 속한 초밥의 종류 개수를 1 증가시키며 result를 갱신했습니다.

또한, 쿠폰에 속한 스시의 종류가 현재 구한 체인 내에 없을 경우 더해줘야 합니다!


개발환경:Visual Studio 2017

 

지적, 조언, 질문 환영입니다! 댓글 남겨주세요~

반응형

'알고리즘 > BOJ' 카테고리의 다른 글

백준 17825번 주사위 윷놀이  (0) 2020.04.30
백준 2456번 나는 학급회장이다  (0) 2020.04.26
백준 2530번 인공지능 시계  (0) 2020.04.26
백준 2526번 싸이클  (0) 2020.04.26
백준 14916번 거스름돈  (0) 2020.04.24