[백준] 주유소 13305번
나의 풀이
public class GasStation {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int N = Integer.parseInt(br.readLine());
long[] distance = new long[N - 1];
StringTokenizer st = new StringTokenizer(br.readLine());
for(int i = 0; i < N - 1; i++) {
distance[i] = Integer.parseInt(st.nextToken());
}
long[] price = new long[N];
st = new StringTokenizer(br.readLine());
for(int i = 0; i < N; i++) {
price[i] = Integer.parseInt(st.nextToken());
}
long lowPrice = price[0];
long answer = lowPrice * distance[0];
for(int i = 1; i < N - 1; i++) {
lowPrice = Math.min(lowPrice, price[i]);
answer += lowPrice * distance[i];
}
System.out.println(answer);
}
}
- 문제는 간단하다. 기름의 가격이 더 낮은 도시를 찾으면 해당 기름의 가격으로 계산을 해주면 된다.
- 처음 도시에서는 무조건 기름을 채우고 가야하기 때문에 우선 계산을 해줬다.
- 처음 도시는 계산을 이미 했기 때문에 반복문의 인덱스는 1부터로 잡고, 끝은 계산하지 않으니 N - 1로 반복문을 돌리며 계산을 하면 된다.
- 숫자가 커서 long을 사용해야 100점을 받을 수 있다.