-
[코딩테스트] 백준(BAEKJOON) - 주유소(Java, 13305번)코딩테스트/백준 2023. 4. 29. 16:16728x90
안녕하세요~
밀린 문제 글쓰기! 오늘은 주유소라는 문제입니다.
주유소라는 문제 저는 나름 어려웠는데요🤣
그래도 어찌 저찌 풀었습니다.
혹시 못푸신 분이 이글을 보시면 그래도 포기하지 말고 계속 성장해 나가봅시다!
그럼 문제 링크 먼저 남겨드립니다.
https://www.acmicpc.net/problem/13305
13305번: 주유소
표준 입력으로 다음 정보가 주어진다. 첫 번째 줄에는 도시의 개수를 나타내는 정수 N(2 ≤ N ≤ 100,000)이 주어진다. 다음 줄에는 인접한 두 도시를 연결하는 도로의 길이가 제일 왼쪽 도로부터 N-1
www.acmicpc.net
다음은 코드를 남기고 저의 간단한 코멘트를 더해보겠씁니다.
import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; import java.util.Comparator; import java.util.List; import java.util.PriorityQueue; import java.util.Scanner; import java.util.StringTokenizer; public class Main { public static void main(String[] args) throws NumberFormatException, IOException { BufferedReader bf=new BufferedReader(new InputStreamReader(System.in)); int time=Integer.parseInt(bf.readLine()); int[] distance=new int[time-1]; int[] oil=new int[time]; long answer=0; String[] disString=bf.readLine().split(" "); String[] oilString=bf.readLine().split(" "); int ocount=0; int dcount=0; for(String a:disString) { distance[dcount]=Integer.parseInt(a); dcount++; } for(String o:oilString) { oil[ocount]=Integer.parseInt(o); ocount++; } long min=Long.MAX_VALUE; for(int i=0;i<distance.length;i++) { if(min>oil[i]) min=oil[i]; answer=answer+min*distance[i]; } System.out.println(answer); } }
제가 생각하는 이 문제의 핵심부분 입니다.
- 일단 도시당 리터 가격의 맨 마지막 값 1은 생각할 필요가 없다.
ㄴ> 이미 도착한 뒤의 리터이기 때문이죠~
- 항상 최소의 오일값을 구해야된다.
ㄴ> 현재 위치의 오일값과 그 전부터 유지해온 최소 오일값을 비교해 현재 위치의 오일값이 최소라면 갱신하고 아니라면 유지해온 오일값을 통해 거리를 통한 비용을 계산하면 되겠습니다.
막상 작성하고 보니 별로 핵심적이거나 신박한건 없네요 헤헤
그래도 이렇게 한 문제 또 풀어본거에 의미를 두며~
이번 글도 마무리하겠습니다.
감사합니다💪💪💪
'코딩테스트 > 백준' 카테고리의 다른 글
[코딩테스트] 백준(BAEKJOON) - 카드 정렬하기(Java, 1715번) (0) 2023.05.02 [코딩테스트] 백준(BAEKJOON) - 30(Java, 10610번) (0) 2023.05.01 [코딩테스트] 백준(BAEKJOON) - 전자레인지(Java, 10162번) (0) 2023.04.29 [코딩테스트] 백준(BAEKJOON) - 수들의 합(Java, 1789번) (0) 2023.04.21 [코딩테스트] 백준(BAEKJOON) - 로프(Java, 2217번) (0) 2023.04.21