백준 132

[백준] 2110번 공유기 설치 (Python 파이썬)

https://www.acmicpc.net/problem/2110 2110번: 공유기 설치 첫째 줄에 집의 개수 N (2 ≤ N ≤ 200,000)과 공유기의 개수 C (2 ≤ C ≤ N)이 하나 이상의 빈 칸을 사이에 두고 주어진다. 둘째 줄부터 N개의 줄에는 집의 좌표를 나타내는 xi (0 ≤ xi ≤ 1,000,000,000)가 www.acmicpc.net 문제에서 주어진 대로, N개의 집에 C개의 공유기를 설치한다. 이 때, 가장 인접한 두 공유기 사이의 거리가 최대 가 되도록 해야 한다. 즉, 집의 좌표가 [ 1, 2, 4, 8, 9 ] 이고 공유기를 3개 설치 할 때, 공유기를 1, 4, 8 혹은 1, 4, 9 에 설치를 해야 가장 인접한 두 공유기 사이의 거리(1, 4)가 3이 되고, 이 3..

[백준] 11559번 Puyo Puyo (Python 파이썬)

https://www.acmicpc.net/problem/11559 11559번: Puyo Puyo 총 12개의 줄에 필드의 정보가 주어지며, 각 줄에는 6개의 문자가 있다. 이때 .은 빈공간이고 .이 아닌것은 각각의 색깔의 뿌요를 나타낸다. R은 빨강, G는 초록, B는 파랑, P는 보라, Y는 노랑이다. www.acmicpc.net 어렸을 때 해봤던 '뿌요뿌요' 게임을 구현한다고 생각하면 될 것 같다. 코드의 풀이 방식은 다음과 같다. 1. 맵(graph)을 돌면서 '.'이 아닌 것(뿌요)을 발견하면 BFS를 실행한다. 2. BFS로 진입하여 현재 터뜨릴 수 있는 뿌요를 모두 터뜨려 준다. 3. 뿌요가 터졌기 때문에 맵을 한번 정리해준다(gravity) 4. 터뜨릴 수 있는 뿌요가 계속 남아있을 때 ..