삼성 SW 역량 테스트 기출 문제

https://www.acmicpc.net/problem/17144

 

17144번: 미세먼지 안녕!

미세먼지를 제거하기 위해 구사과는 공기청정기를 설치하려고 한다. 공기청정기의 성능을 테스트하기 위해 구사과는 집을 크기가 R×C인 격자판으로 나타냈고, 1×1 크기의 칸으로 나눴다. 구사과는 뛰어난 코딩 실력을 이용해 각 칸 (r, c)에 있는 미세먼지의 양을 실시간으로 모니터링하는 시스템을 개발했다. (r, c)는 r행 c열을 의미한다. 공기청정기는 항상 1번 열에 설치되어 있고, 크기는 두 행을 차지한다. 공기청정기가 설치되어 있지 않은 칸에는 미세먼

www.acmicpc.net



Solution

 

문제 유형 : 시뮬레이션, BFS/DFS

 

삼성에는 유독 이런 시뮬레이션 문제가 많은 것 같다.

많은 건 좋지만 내가 좀 어려워하는 경향이 있어서 그게 문제다.

쉽게 말해서 나와있는 문제의 조건들을 구현만 하면 되는 건데 왜 이렇게 까다로운지 모르겠다.

이게 정답률 54%라니 역시 코딩 잘하는 사람이 너무 많다.

 

구현해야할 것은 크게 두 개.

1. 미세먼지 확산

      미세먼지가 확산하는 것은 BFS로 구현했다.

      미세먼지가 있는 칸을 큐에 담고 공기 청정기가 있는 인덱스가 아니면 확산시킨다. 

 

2. 공기청정기 작동

     공기청정기가 특이하게 작동해서 좀 골치아팠다.

     미세먼지를 한 칸씩 밀면서 가로, 세로에 겹치는 칸들이 있어서 주의하면서 구현했다.

 

초마다 1, 2가 순서대로 일어나므로 T초 뒤의 미세먼지 양을 출력.

 

성공 ^_^

 


생강강

,