목록전체 글 (44)
시간이 NullNull
[제약 사항] 1. 시간 제한 : 최대 50개 테스트 케이스를 모두 통과하는 데 C/C++/Java 모두 3초 2. 지도의 한 변의 길이 N은 3 이상 8 이하의 정수이다. (3 ≤ N ≤ 8) 3. 최대 공사 가능 깊이 K는 1 이상 5 이하의 정수이다. (1 ≤ K ≤ 5) 4. 지도에 나타나는 지형의 높이는 1 이상 20 이하의 정수이다. 5. 지도에서 가장 높은 봉우리는 최대 5개이다. 6. 지형은 정수 단위로만 깎을 수 있다. 7. 필요한 경우 지형을 깎아 높이를 1보다 작게 만드는 것도 가능하다. 이 문제에서 주목해야 할 점은 "지도의 한 변의 길이 N은 3이상 8이하의 정수이다." 와 "최대 공사 가능 깊이 K는 1이상 5이하의 정수이다." 이다. 이 점을 가지고 생각해보면 가장 큰 지도 인..
첫째 줄에 지도의 세로 크기 N과 가로 크기 M이 주어진다. (3 ≤ N, M ≤ 8)둘째 줄부터 N개의 줄에 지도의 모양이 주어진다. 0은 빈 칸, 1은 벽, 2는 바이러스가 있는 위치이다. 2의 개수는 2보다 크거나 같고, 10보다 작거나 같은 자연수이다.빈 칸의 개수는 3개 이상이다. 라는 문구가 가장 먼저 눈에 띄었고 N이 8이하 벽은 3개 라는 것에 착안점을 두어 3중 for문으로 벽을 세울 인덱스를 정한뒤 바이러스가 퍼지도록 bfs를 하여 그 때 남은 0의 갯수를 세어 확인하였다. 3중 for문을 작성할때 ( 3개의 점을 고를때 ) 같은 점을 찍지 않도록 그리고 0인점만 골라 벽을 세울 수 있도록 다음과 같이 작성하였다.첫번째 for문 기준으로 idx / M(가로크기) 는 일반적인 배열의 i ..