본문 바로가기
Algorithm

SW Expert Academy 1206번 <View>

by seungh2 2022. 5. 12.

SW Expert Academy <View>

https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV134DPqAA8CFAYh 

 

SW Expert Academy

SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!

swexpertacademy.com


View

왼쪽과 오른쪽 창문을 열었을 때, 양 쪽 모두 거리 2 이상의 공간이 확보되었을 때, 조망권이 확보된다고 말한다.

빌딩들에 대한 정보가 주어질 때, 조망권이 확보된 세대의 수를 구하여라.

 

입력으로 10개의 테스트 케이스가 들어온다.

테스트 케이스는 첫 줄에 빌딩 지역의 길이가 주어지고 그 다음 줄에 각 빌딩 지역으 빌딩 높이가 공백으로 구분되어 들어온다. (맨 왼쪽 두 칸과 맨 오른쪽 두 칸에는 건물이 지어지지 않는다.)

 

출력으로 각 테스트 케이스에 대해 조망권이 확보된 세대의 수를 구하여 출력하면 된다.


문제 해결

각 건물을 기준으로 앞 건물, 앞앞 건물, 뒤 건물, 뒤뒤 건물의 높이에 대해 확인하면 된다.

 

만약 현재 건물을 기준으로 앞 건물, 앞앞 건물, 뒤 건물, 뒤뒤 건물의 높이가 현재 건물의 높이보다 높다면 모두 조망권이 확보되지 않았으므로 넘어간다.

현재 건물을 기준으로 앞 건물, 앞앞 건물, 뒤 건물, 뒤뒤 건물의 높이 중 가장 높은 건물의 높이를 구한다.

(현재 건물의 높이) - (4개의 건물 중 가장 높은 건물의 높이) 의 값이 현재 건물에서 조망권을 확보한 세대의 수이다.


코드

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class Solution {

	public static void main(String[] args) throws IOException{
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		
		for(int testcase = 1; testcase < 11; testcase++) {
			int n = Integer.parseInt(br.readLine());
			String[] inArr = br.readLine().split(" ");
			int[] height = new int[n];
			
			for(int i = 0; i < n; i++) {
				height[i] = Integer.parseInt(inArr[i]);
			}
			int answer = 0;
			for(int i = 2; i < n-2; i++) {
				if(height[i] <= height[i+1] || height[i] <= height[i+2] || height[i] <= height[i-1] || height[i] <= height[i-2] ) {
					continue;
				}
				int temp1 = Math.max(height[i-1], height[i-2]);
				int temp2 = Math.max(height[i+1], height[i+2]);
				int highest = Math.max(temp1, temp2);
				answer += height[i] - highest;
			}
			System.out.println("#" + testcase + " " + answer);
		}
		
	}

}

결과


 

728x90

'Algorithm' 카테고리의 다른 글

Softeer <회의실 예약>  (0) 2022.05.18
백준 1021번 <회전하는 큐>  (0) 2022.05.16
[SW Expert Academy] 1859번 <백만 장자 프로젝트>  (0) 2022.05.12
백준 1780번 <종이의 개수>  (0) 2022.05.10
백준 2504번 <괄호의 값>  (0) 2022.05.10

댓글