알고리즘(종합)/Lv.3
1206 - View 조망권
ch.0
2022. 11. 14. 18:31
package test;
import java.io.IOException;
import java.util.Scanner;
public class Solution {
public static void main(String[] args) throws IOException {
Scanner sc = new Scanner(System.in);
int test = 10;
for (int k = 0; k < test; k++) {
int total=0;
int w = sc.nextInt();
int[][] array = new int[255][w];
for (int i = 0; i < w; i++) {
int h = sc.nextInt();
for (int j = 0; j < h; j++) {
array[j][i] = 1;
}
}
for (int i = 2; i < w-2; i++) {
for (int j = 0; j < 255; j++) {
int sum = 0;
for (int m = -2; m < 3; m++) {
if (m == 0) {
} else {
sum += array[j][i] - array[j][i + m];
}
}
if(sum==4) {
total++;
}
}
}
System.out.println("#"+(k+1)+" "+total);
}
}
}
1. 배열에서 높이에 속하는 만큼 1을 채워 빌딩을 만들어준다.
2. 배열의 세로를 기준으로 두고 가로+/- 2만큼을 뺀다.
1-0= 1 가 4번 반복된다는건 1을 기준으로 양쪽에 2개만큼 비어있다는것이다
3. 기준에 합하는 갯수만큼 더하여 준다.