반응형
Notice
Recent Posts
Recent Comments
Link
«   2026/02   »
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
Archives
Today
Total
관리 메뉴

욱꾸미의 주꾸미 발

[코딩테스트] 백준(BAEKJOON) - 주유소(Java, 13305번) 본문

코딩테스트/백준

[코딩테스트] 백준(BAEKJOON) - 주유소(Java, 13305번)

욱꾸미 2023. 4. 29. 16:16
반응형

안녕하세요~

 

밀린 문제 글쓰기! 오늘은 주유소라는 문제입니다.

주유소라는 문제 저는 나름 어려웠는데요🤣

 

그래도 어찌 저찌 풀었습니다.

 

혹시 못푸신 분이 이글을 보시면 그래도 포기하지 말고 계속 성장해 나가봅시다!

 

그럼 문제 링크 먼저 남겨드립니다.

 

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은 생각할 필요가 없다.

ㄴ> 이미 도착한 뒤의 리터이기 때문이죠~

 

- 항상 최소의 오일값을 구해야된다.

ㄴ> 현재 위치의 오일값과 그 전부터 유지해온 최소 오일값을 비교해  현재 위치의 오일값이 최소라면 갱신하고 아니라면 유지해온 오일값을 통해 거리를 통한 비용을 계산하면 되겠습니다.

 

막상 작성하고 보니 별로 핵심적이거나 신박한건 없네요 헤헤

 

그래도 이렇게 한 문제 또 풀어본거에 의미를 두며~

이번 글도 마무리하겠습니다.

 

감사합니다💪💪💪

 

반응형