본문 바로가기
Problem Solving/SWEA

[SWEA] 1206. [S/W 문제해결 기본] 1일차 - View

by 테리는당근을좋아해 2020. 2. 16.

문제

아래와 같이 강변에 8채의 빌딩이 있을 때, 연두색으로 색칠된 여섯 세대에서는 좌우로 2칸 이상의 공백이 존재하므로 조망권이 확보된다. 이 때, 조망권이 확보되는 세대 수를 구하는 문제

 

풀이방법

1) 완전 탐색으로 각 빌딩마다 좌, 우 2칸 씩 조망권이 확보되는지 확인

 

2) 조망권이 확보될 경우 좌, 우 2칸 중 가장 높은 빌딩과의 차를 구한다.

 

소스코드

package samsung;

import java.util.*;

public class s_1206 {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		for(int t = 1; t <= 10; t++) {
			int n = sc.nextInt();
			int cnt = 0;
			int[] a = new int[n];
			for(int i = 0; i < n; i++) {
				a[i] = sc.nextInt();
			}
			for(int i = 2; i < n - 2; i++) {
				int[] b = new int[4];
				b[0] = a[i-2];
				b[1] = a[i-1];
				b[2] = a[i+1];
				b[3] = a[i+2];
				
				if(b[0] < a[i] && b[1] < a[i] && b[2] < a[i] && b[3] < a[i]) {
					int max = 0;
					for(int j = 0; j < 4; j++) {
						max = Math.max(max, b[j]);
					}
					cnt += (a[i] - max);
				}
			}
			System.out.println("#" + t + " " + cnt);
		}
	}
}

 

댓글