문제에 대한 내용은 위의 링크에서 확인하실 수 있습니다.
나의 풀이
이 문제는 브루트포스로 해결했습니다.
건물을 완전탐색하면서, 해당 건물 위치에서 -2, -1, 1, 2에 위치한 건물의 높이를 비교하여 조망권이 확보되었는지 확인하였습니다.
import java.io.*;
import java.util.*;
class Solution
{
public static void main(String args[]) throws Exception
{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int T = 10;
for(int test_case = 1; test_case <= T; test_case++)
{
int n = Integer.parseInt(br.readLine());
int[] buildingHeights = new int[n];
StringTokenizer st = new StringTokenizer(br.readLine());
for (int i = 0; i < n; i++) {
buildingHeights[i] = Integer.parseInt(st.nextToken());
}
int clearViewCnt = getClearViewCount(n, buildingHeights);
System.out.println("#" + test_case + " " + clearViewCnt);
}
}
static int[] checkArray = new int[] {-2, -1, 1, 2};
public static int getClearViewCount(int n, int[] buildingHeights) {
int cnt = 0;
for (int i = 2; i < n - 2; i++) {
boolean isClear = true;
int nowBuildHeights = buildingHeights[i];
int max = 0;
for (int check : checkArray) {
max = Math.max(max, buildingHeights[i + check]);
if (buildingHeights[i + check] >= nowBuildHeights) {
isClear = false;
}
}
if (isClear) {
cnt += nowBuildHeights - max;
}
}
return cnt;
}
}
'SWEA' 카테고리의 다른 글
2805. 농작물 수확하기 [D3] by Java (0) | 2023.11.17 |
---|---|
1209. [S/W 문제해결 기본] 2일차 - Sum [D3] by Java (0) | 2023.11.16 |
1240. [S/W 문제해결 응용] 1일차 - 단순 2진 암호코드 [D3] by Java (1) | 2023.11.16 |
1208. [S/W 문제해결 기본] 1일차 - Flatten [D3] by Java (0) | 2023.11.15 |
[SWEA] 1244. [S/W 문제해결 응용] 2일차 - 최대 상금 (D3) by Java (1) | 2023.10.29 |