🔺 문제
13305번: 주유소
표준 입력으로 다음 정보가 주어진다. 첫 번째 줄에는 도시의 개수를 나타내는 정수 N(2 ≤ N ≤ 100,000)이 주어진다. 다음 줄에는 인접한 두 도시를 연결하는 도로의 길이가 제일 왼쪽 도로부터 N-1
www.acmicpc.net
🔺 코드
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
|
import java.util.*;
import java.io.*;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int n = Integer.parseInt(br.readLine());
long[] km = new long[n - 1]; // 도시 간 거리
long[] price = new long[n]; // 기름값
// 도로 길이 저장
StringTokenizer st = new StringTokenizer(br.readLine(), " ");
for(int i = 0 ; i < km.length ; i++) {
km[i] = Long.parseLong(st.nextToken());
}
// 주유 가격 저장
st = new StringTokenizer(br.readLine(), " ");
for(int i = 0 ; i < price.length ; i++) {
price[i] = Long.parseLong(st.nextToken());
}
long sum = 0;
long min = price[0]; // 이전까지 과정 중 최솟값
for(int i = 0 ; i < km.length ; i++) { // 마지막 주유소 가격은 고려 X.
// 첫 도시 vs 다음 도시 주유 가격 비교해 더 낮은 주유 가격만큼 주유
if(price[i] < min) {
min = price[i];
}
sum += (min * km[i]);
}
System.out.println(sum);
}
}
|
cs |
✅ 해결 아이디어
✔ 그리디
- 리터 당 기름값이 '내림차순'일 경우 주유
→ 첫 도시 vs 다음 도시의 주유 가격 비교해, 더 낮은 주유 가격만큼 주유 (= 최솟값 주유)
💥 유의사항
• long형으로 받기⇨ 입력값이 10억까지 들어올 수 있어, in형 범위 넘음.
🔺 다른 풀이들
- 다들 비슷하심
💬 느낀 점
주유주유... 글씨 계속 보니까 게슈탈트 붕괴 현상 왔다...
주유해주유...
암튼 다음엔 스스로 생각해내서 빨리 풀어보자,,,
1회독 | 2회독 | 3회독 | 4회독 | 5회독 |
V | 240416 |
(참고)
- 풀이 참고
[JAVA] 백준 13305 - 주유소
백준 13305 - 주유소처음에 문제를 읽고 이해가 하나도 되지 않았다.최소한으로 계산해보려고 거리들의 합을 가격으로 나누어 보기도하고 거리가 가격으로 나누어 떨어지는지 별 방법을 동원했
velog.io
[백준] 자바 Java, 13305번: 그리디 알고리즘 > 주유소
13305번: 주유소 표준 입력으로 다음 정보가 주어진다. 첫 번째 줄에는 도시의 개수를 나타내는 정수 N(2 ≤ N ≤ 100,000)이 주어진다. 다음 줄에는 인접한 두 도시를 연결하는 도로의 길이가 제일 왼
imyena.tistory.com
[백준] 13305번 : 주유소 - JAVA [자바]
www.acmicpc.net/problem/13305 13305번: 주유소 표준 입력으로 다음 정보가 주어진다. 첫 번째 줄에는 도시의 개수를 나타내는 정수 N(2 ≤ N ≤ 100,000)이 주어진다. 다음 줄에는 인접한 두 도시를 연결하는
st-lab.tistory.com
'코테 > 백준' 카테고리의 다른 글
[백준/JAVA] 18406번: 럭키 스트레이트 (0) | 2023.08.03 |
---|---|
[백준/JAVA] 1515번: 수 이어 쓰기 (0) | 2023.08.03 |
[백준/JAVA] 1439번: 뒤집기 (0) | 2023.08.01 |
[백준/JAVA] 2559번: 수열 (0) | 2023.08.01 |
[백준/JAVA] 14940번: 쉬운 최단거리 (0) | 2023.08.01 |