https://www.acmicpc.net/problem/2304

 

2304번: 창고 다각형

첫 줄에는 기둥의 개수를 나타내는 정수 N이 주어진다. N은 1 이상 1,000 이하이다. 그 다음 N 개의 줄에는 각 줄에 각 기둥의 왼쪽 면의 위치를 나타내는 정수 L과 높이를 나타내는 정수 H가 한 개의

www.acmicpc.net

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.StringTokenizer;

public class Main {
	public static void main(String[] args) throws Exception {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		StringTokenizer st = new StringTokenizer(br.readLine());

		int N = Integer.parseInt(st.nextToken());
		int[] arr = new int[1001];
		int maxH = 0;
		int maxIdx = -1;
		for (int i = 0; i < N; i++) {
			st = new StringTokenizer(br.readLine());
			int L = Integer.parseInt(st.nextToken());
			int H = Integer.parseInt(st.nextToken());
			arr[L] = H;
			
			if (arr[L] > maxH) {
				maxH = arr[L];
				maxIdx = L;
			}
		}

		int answer = 0;
		int currentH = 0;
		for (int i = 0; i < maxIdx; i++) {
			if (arr[i] > currentH) {
				currentH = arr[i];
			}
			answer += currentH;
		}
		
		currentH = 0;
		for (int i = arr.length - 1; i > maxIdx; i--) {
			if (arr[i] > currentH) {
				currentH = arr[i];
			}
			answer += currentH;
		}
		answer += maxH;
		System.out.println(answer);
	}
}

+ Recent posts