반응형
Notice
Recent Posts
Recent Comments
Link
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
Tags
- level2
- 씨샵
- 쿼리
- WPF
- JPA
- Spring Boot
- 프로그래머스
- 1931번
- programmers
- MVVM
- springboot
- Java
- 운전면허
- WSL
- MySQL
- 자바
- 스프링부트
- 백준
- delegate
- SQL
- 보통2종
- c#
- 코테
- 코딩테스트
- 3일컷
- Python
- 닫기버튼
- level4
- level3
- 일반화
Archives
- Today
- Total
욱꾸미의 주꾸미 발
[코딩테스트] 백준(BAEKJOON) - 주유소(Java, 13305번) 본문
반응형
안녕하세요~
밀린 문제 글쓰기! 오늘은 주유소라는 문제입니다.
주유소라는 문제 저는 나름 어려웠는데요🤣
그래도 어찌 저찌 풀었습니다.
혹시 못푸신 분이 이글을 보시면 그래도 포기하지 말고 계속 성장해 나가봅시다!
그럼 문제 링크 먼저 남겨드립니다.
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 |