전공공부
[BOJ_13305] 주유소 본문
설명
이전의 상태 값을 기억하고 최소한의 값으로 지속적인 탐색을 통해서 값을 구했습니다. O(N)이 걸렸고 정답 값이 오버플로우가 나기 때문에 long으로 설정하는 것이 중요했습니다.
코드
package BOJ.greedy;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
public class BOJ_13305 {
public static void main(String[] args) throws Exception{
BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer tk = new StringTokenizer(in.readLine()," ");
int N = Integer.parseInt(tk.nextToken());
int[] dist = new int[N - 1];
tk = new StringTokenizer(in.readLine()," ");
for (int i = 0; i < N - 1; i++){
dist[i] = Integer.parseInt(tk.nextToken());
}
int[] arr = new int[N];
tk = new StringTokenizer(in.readLine()," ");
for (int i = 0; i < N; i++){
arr[i] = Integer.parseInt(tk.nextToken());
}
int min = arr[0];
long ans = 0;
for (int i = 0; i < N - 1; i++){
if(arr[i] >= min){
ans += (long) dist[i] * min;
}else{
min = arr[i];
ans += (long) dist[i] * min;
}
}
System.out.println(ans);
}
}
13305번: 주유소
표준 입력으로 다음 정보가 주어진다. 첫 번째 줄에는 도시의 개수를 나타내는 정수 N(2 ≤ N ≤ 100,000)이 주어진다. 다음 줄에는 인접한 두 도시를 연결하는 도로의 길이가 제일 왼쪽 도로부터 N-1
www.acmicpc.net
'Study > Problem Solving' 카테고리의 다른 글
[BOJ_11000] 강의실 배정 (0) | 2024.04.07 |
---|---|
[BOJ_20365] 블로그2 (0) | 2024.04.04 |
[BOJ_1758] 알바생 강호 (1) | 2024.03.29 |
[BOJ_1343] 폴리오미노 (0) | 2024.03.27 |
[BOJ_2293] 동전1 (0) | 2024.03.24 |