A. 문제설명
https://www.acmicpc.net/problem/17837
자세한 설명은 링크참조
1. R * C 칸의 방에 미세먼지 양 정보가 주어짐
2. 동시에 공기청정기 위치 (r, c)도 주어짐. 공기청정기는 세로 2칸 크기
3. 매 초마다 미세먼지 확산과 공기청정기 작동이 일어남
4. 미세먼지가 인접한 네 방향으로 확산
4-1. 공기청정기가 있거나, 벽이면 그 방향으로는 확산 X
4-2. 확산되는 양은 먼지량/5이고 소수점은 버린다.
4-3. 기존 칸에 남은 미세먼지의 양은 '먼지량 - (먼지량/5) * (확산된 방향의 개수)'
5. 공기청정기 작동
5-1. 위쪽은 반시계, 아래쪽은 시계방향으로 벽을 타고 공기이동
5-2. 먼지는 바람의 방향대로 한 칸씩 이동. 바람은 먼지없는 바람이고, 공기청정기로 들어간 미세먼지는 없어짐
6. T초 후 전체 먼지량 계수
정답률 50%가 넘는 비교적 쉬운 문제이다. 먼지 확산과 공기청정기 작동 두가지 규칙을 잘 지키며 구현하도록 하자.
B. 접근법
시뮬레이션 문제. 먼지 확산과 공기청정기 작동은 문제 조건대로 그대로 구현하면 됨
C. 풀이
1. T번의 반복문 수행
2. 미세먼지 확산
2.1 확산시 매 위치에서 주변 위치로 퍼뜨리면서 새로 갱신되는 먼지량은 계산량에 포함하지 않도록
2.2 확산시 퍼지는 위치는 AC, 벽 제외한 먼지 이미 있는 위치 포함
3. AC 작동
3.1 상단 AC 반시계 방향 이동
3.2 하단 AC 시계 방향 이동
4. T초 후 에어컨 위치 제외하고 전체 먼지량 계수
D. 내 코드