BOJ 11559. Puyo Puyo
2022. 11. 14. 23:09ㆍ공부/알고리즘
11559번: Puyo Puyo (acmicpc.net)
11559번: Puyo Puyo
총 12개의 줄에 필드의 정보가 주어지며, 각 줄에는 6개의 문자가 있다. 이때 .은 빈공간이고 .이 아닌것은 각각의 색깔의 뿌요를 나타낸다. R은 빨강, G는 초록, B는 파랑, P는 보라, Y는 노랑이다.
www.acmicpc.net
이 문제는 구현 자체는 어려운편은 아니었는데, 예외처리와 아래로 당기는 작업을 잘못해줘서 헤맸던 문제다.
뿌요뿌요의 룰을 그대로 따라가며, 배열의 크기가 12*6으로 작기 때문에 보는 그대로 구현하면 된다.
1. 각 그룹에 맞게 BFS를 돌려서 크기를 알아낸다.
2. 크기가 4 이상인 그룹은 따로 배열에 그룹번호를 넣어준다.
3. 전체 항목에 대해 빠지는 그룹을 제외한 나머지 그룹의 원소들을 아래로 내린다.
4. 1~3 과정을 반복한다.
여기서 BFS는 쉽게 구현이 가능하지만 아래로 내리는 것에서 자꾸 틀렸었다.
여러 그룹이 동시에 빠지게 되면 그만큼 카운트를 누적시켜줬어야 했는데, 자꾸 카운터를 초기화했던 것.
게다가 빠지고 난 뒤 .으로 교체해주어야 위에 내려오지 않고 남는 원소들이 없게 된다.
'공부 > 알고리즘' 카테고리의 다른 글
BOJ 10844. 쉬운 계단 수 (0) | 2022.11.15 |
---|---|
BOJ 14501. 퇴사 / BOJ 15486. 퇴사 2 (0) | 2022.11.15 |
BOJ 11652. 카드 (0) | 2022.11.14 |
BOJ 15686. 치킨 배달 (0) | 2022.11.13 |
BOJ 12100. 2048 (Easy) (0) | 2022.11.13 |