문제 링크입니다: https://www.acmicpc.net/problem/25596
25596번: 마트료시카 박스 II
첫 번째 줄에 수정 전 설계도의 박스의 개수 $N$, 수정 후 설계도의 최대 서브 박스 개수 $M$, 추가할 수 있는 박스의 개수 $K$가 공백으로 구분되어 주어진다. $(4 \leq N \leq 1\,000;$ $2 \leq M \leq N - 2;$ $0
www.acmicpc.net
큐 배열을 이용하여 푼 문제였습니다.
알고리즘은 아래와 같습니다.
1. N이 최대 1,000이고 K 또한 최대 1,000이므로 크기가 2,000이 넘는 큐 배열을 선언해줍니다.
2. 주어진 입력을 토대로 1번에서 선언한 큐 배열을 전처리해줍니다.
3. 모든 박스를 순회하며 서브 박스의 개수가 M개 이하인지 확인하고 M개 초과라면 아래와 같이 처리해줍니다.
3.1 각 박스의 서브 박스가 M개 이하가 될 때까지 새로운 박스를 서브 박스로 추가하고 해당 서브 박스에 기존 서브 박스를 중첩합니다.
3.2 이 과정에서 추가한 박스가 K개가 넘어갈 경우 불가능한 케이스이므로 0을 출력하고 프로그램을 종료합니다.
4. 3번 과정을 통과하면 가능한 케이스이므로 1과 추가한 박스 개수를 출력합니다.
4.1 그리고 1부터 (N + 추가한 박스 개수)를 순회하며 해당 박스의 서브 박스 개수와 서브 박스들을 출력하고 프로그램을 종료합니다.
개발환경:Visual Studio 2022
지적, 조언, 질문 환영입니다! 댓글 남겨주세요~
반응형
'알고리즘 > BOJ' 카테고리의 다른 글
백준 2910번 빈도 정렬 (0) | 2024.03.13 |
---|---|
백준 4659번 비밀번호 발음하기 (0) | 2024.03.13 |
백준 25516번 거리가 K이하인 트리 노드에서 사과 수확하기 (0) | 2022.09.04 |
백준 25513번 빠른 오름차순 숫자 탐색 (0) | 2022.09.04 |
백준 25527번 Counting Peaks of Infection (0) | 2022.08.31 |