코딩테스트/백준

백준 11559번 puyo puyo 풀이, 코드 (파이썬) 골드4, 구현 + 그래프 문제

RyanKwon 2021. 12. 18. 21:00
728x90

코드만 궁금한 분은 깃허브 링크 눌러주세요 :)

 

GitHub - Rhyankwon/algorithms

Contribute to Rhyankwon/algorithms development by creating an account on GitHub.

github.com

 

문제는 여기

 

11559번: Puyo Puyo

총 12개의 줄에 필드의 정보가 주어지며, 각 줄에는 6개의 문자가 있다. 이때 .은 빈공간이고 .이 아닌것은 각각의 색깔의 뿌요를 나타낸다. R은 빨강, G는 초록, B는 파랑, P는 보라, Y는 노랑이다.

www.acmicpc.net

문제 설명 ㄱㄱ

대충 이런 문제이다. 12*6짜리 행렬의 입력이 주어지는데 Y나 R같은 문자들은 색을 나타낸다. 그리고 같은 색이 4개 이상 상하좌우로 붙어있으면 사라지고 그 사라지는 횟수를 카운트 한다. 색이 사라지면 윗쪽에 있던 것들이 아래로 내려오고 거기에서 다시 같은 색이 4개 붙어있는지 확인한다. 더이상 사라질 수 있는 뿌요가 없으면 끝. 같은 색의 4개짜리 그룹이 한번에 여러개 있을 경우 한번에 다같이 터지고 이 때 1만 카운트 된다.

 

 

문제 풀이

 

사실 전에 카카오 기출에서 풀어봤던 적이 있는 문제라서 골드4 치고는 쉽게 풀었다. 문제에서 하라는대로 하면 되는 구현문제라서 딱히 설명할게 별로 없다.. ㅋㅋㅋ 그냥 맨 아랫쪽부터 4개이상 같은 색인 그룹을 확인하고(여기에서는 스택 사용) 4개 이상인 경우 . 으로 바꾸고. 카운트 += 1. 한번 모두 터뜨리고 나서는 맨 아래쪽부터 .이 있으면 그 윗쪽 값과 바꾸는 식으로 해서 맨 아래로 다시 RGBYP값을 몰아주고. 이런 유형의 문제는 한번 풀면 그 이후엔 크게 어렵지 않게 풀 수 있다.

 

내가 비슷하다고 얘기한 카카오 기출은 2018년 프렌즈 4블록 문제이고 거~의 비슷한 유형이다. 윗쪽에 링크가 있으니까 이 문제를 제대로 풀었다면 한번 클릭해서 풀이를 생각해보는것도 나쁘지 않을 듯 하다.

728x90