문제 >>
1206. [S/W 문제해결 기본] 1일차 - View
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 | import java.lang.reflect.Array; import java.util.Arrays; import java.util.Scanner; public class Solution { public static void main(String[] args) { Scanner s = new Scanner(System.in); for(int tc=1;tc<=10;tc++) { int n = s.nextInt(); int[] map = new int[n]; for(int i=0;i<n;i++) { map[i]=s.nextInt(); } int ans = 0; for(int i=2;i<map.length-2;i++) { int[] arr = new int[4]; arr[0] = map[i-1]; arr[1] = map[i-2]; arr[2] = map[i+1]; arr[3] = map[i+2]; Arrays.sort(arr); if(arr[3]<map[i]) { ans += (map[i]-arr[3]); } } System.out.println("#"+tc+" "+ans); } } } | cs |
빌딩의 옥상에 서있는 '나'를 기준으로 좌우로 두칸 거리에 있는 빌딩들의 높이와 비교 해본다.
4곳 모두 (좌로 1칸, 2칸 // 우로 1칸, 2칸) 본인보다 높이가 낮다면, (현재 빌딩 높이 - 4곳중 최대높이) 가 내가 서있는 빌딩의 확보된 조망권일 것이다.
각각의 빌딩의 높이를 입력받은 배열 map 을 방문하면서
좌우로 2칸 안에 위치한 빌딩의 높이들을 arr이라는 배열에 담아주고 sort 했다.
arr의 최대 값이 현재 빌딩의 높이보다 낮다면, (현재 빌딩의 높이 - arr의 max) 가 현재 빌딩의 조망권이다..
'Algorithm Problem Solving' 카테고리의 다른 글
1218. [S/W 문제해결 기본] 4일차 - 괄호 짝짓기 (0) | 2019.01.15 |
---|---|
[BOJ] 1018 : 체스판 다시 칠하기 (0) | 2019.01.11 |
1225. [S/W 문제해결 기본] 7일차 - 암호생성기 (0) | 2019.01.11 |
[BOJ] 15686 : 치킨배달 (1) | 2019.01.08 |
Baby-gin (0) | 2019.01.08 |