창고다각형
title: 2026-01-16 author: 강병호 (이름) date: 2026-01-16 (날짜) category: TIL/강병호/2026/01 (파일 경로 : TIL/{이름}/{연}/{월}) layout: post (자유) —
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(br.readLine());
int[] arr = new int[1001];
int res = 0;
int first_index = Integer.MAX_VALUE;
int last_index = Integer.MIN_VALUE;
int first_num = Integer.MIN_VALUE;
int last_num = Integer.MIN_VALUE;
int max_num = Integer.MIN_VALUE;
int max_idx = 0;
for (int i = 0; i < N; i++) {
st = new StringTokenizer(br.readLine());
int idx = Integer.parseInt(st.nextToken());
int num = Integer.parseInt(st.nextToken());
// System.out.println("idx : " + idx + " num : " + num);
arr[idx] = num;
first_index = Math.min(first_index, idx);
last_index = Math.max(last_index, idx);
if (num > max_num) {
max_num = num;
max_idx = idx;
}
}
int num = 0;
// System.out.println("first_index : " + first_index);
// System.out.println("last_index : " + last_index);
// System.out.println("max_idx : " + max_idx);
// System.out.println("max_num : " + max_num);
for (int i = first_index; i <= max_idx; i++) {
if (num < arr[i]) {
num = arr[i];
}
res += num;
// System.out.println("res : " + res);
}
num = 0;
for (int i = last_index; i > max_idx; i--) {
if (num < arr[i]) {
num = arr[i];
}
res += num;
// System.out.println("res : " + res);
}
System.out.println(res);
}
}