[백준] 13305번 주유소

2024. 12. 30. 14:16·백준 문제/그리디

문제: 13305번: 주유소

 

#include <iostream>
#include <vector>
#include <queue>
#include <stack>

using namespace std;

int main() {
    ios_base::sync_with_stdio(false);
    cin.tie(0);
    cout.tie(0);

    int n; // 도시의 개수
    cin >> n;

    vector<long long> nextDists;
    for (int i = 0; i < n - 1; i++) {
        long long dist;
        cin >> dist;
        nextDists.push_back(dist);
    }

    vector<long long> costs;
    for (int i = 0; i < n; i++) {
        long long cost;
        cin >> cost;
        costs.push_back(cost);
    }

    long long prev = costs[0];
    long long cur = -1;
    long long totalCost = costs[0] * nextDists[0]; // 맨 처음 지역에서 일단 필요한만큼 더해주기
    for (int i = 1; i < n - 1; i++) {
        cur = costs[i];

        if (prev < cur)
            totalCost += prev * nextDists[i];
        else {
            totalCost += cur * nextDists[i];
            prev = cur;
        }
    }
    cout << totalCost << "\n";


    return 0;
}

 

음.. 별로 어렵지 않았다. 문제 풀이의 핵심은 일단 최대한 적은 돈을 사용하도록 하는 것이다. 즉, 이를 위해서는 현재 지역과 이전 지역의 주유 비용 중 값이 덜 나가는 값으로 충전해주면 되는 것이다. 

 

현재 지역의 주유 비용이 더 작다면 그제서야 prev 값을 현재 지역의 주유 비용으로 업데이트 해주면 된다. 아 그런데 처음 문제 코드 제출했을때는 58점이 나왔는데 이유를 찾아보니까 또 크기 범위를 잘못 설정해줘서 그런 것이었다;; long long 으로 해줘야 하는데 int 로 하니까 값이 이상해져서...;; 문제 조건을 꼼꼼히 읽어야하는데 이게 잘 안된다..

 

 

참고자료:

[c++][Greedy] 백준 13305번 문제 풀이

 

[c++][Greedy] 백준 13305번 문제 풀이

알고리즘 도시를 하나 씩 옮겨가면서 첫 번째 도시~ 현재 도시 중 가장 주유 값이 적은 것을 선택한다. 현재도시~다음 도시 까지의 도로의 길이를 구한다. (첫 번째 도시 ~ 현재도시 중 가장 적은

8156217.tistory.com

백준 13305 주유소 (JAVA) : 네이버 블로그

 

백준 13305 주유소 (JAVA)

1. 문제 https://www.acmicpc.net/problem/13305 2. 해결방법 먼저 말하자면 정답은 맞췄지만 상당히 비효...

blog.naver.com

문제 풀고나서 다른 사람들 풀이도 한 번 봤는데 비슷하게 푼 것 같다.

'백준 문제/그리디' 카테고리의 다른 글
  • [백준] 2847번 게임을 만든 동준이
  • [백준] 11501번 주식
  • [백준] 16953번 A -> B
  • [백준] 8980번 택배
dubu0721
dubu0721
dubu0721 님의 블로그 입니다.
  • dubu0721
    dubu0721 님의 블로그
    dubu0721
  • 전체
    오늘
    어제
    • 분류 전체보기 (335)
      • 프로그래밍언어론 정리 (0)
      • 컴퓨터네트워크 정리 (5)
      • 알고리즘&자료구조 공부 (64)
        • it 취업을 위한 알고리즘 문제풀이 입문 강의 (60)
        • 학교 알고리즘 수업 (3)
        • 실전프로젝트I (0)
      • 백준 문제 (193)
        • 이분탐색 (7)
        • 투포인트 (10)
        • 그래프 (7)
        • 그리디 (24)
        • DP (25)
        • BFS (15)
        • MST (7)
        • KMP (4)
        • Dijkstra (3)
        • Disjoints Set (4)
        • Bellman-Ford (2)
        • 시뮬레이션 (3)
        • 백트래킹 (15)
        • 위상정렬 (5)
        • 자료구조 (25)
        • 기하학 (1)
        • 정렬 (11)
        • 구현 (8)
        • 재귀 (8)
        • 수학 (8)
      • 유니티 공부 (11)
        • 레트로의 유니티 게임 프로그래밍 에센스 (11)
        • 유니티 스터디 자료 (0)
        • C# 공부 (0)
      • 유니티 프로젝트 (48)
        • 케이크게임 (13)
        • 점토게임 (35)
      • 언리얼 공부 (10)
        • 이득우의 언리얼 프로그래밍 (10)
      • 진로 (1)
      • 논문 읽기 (1)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    수학
    dp
    그래프
    스택
    이득우
    C#
    BFS
    투포인터
    백준
    레트로의 유니티 프로그래밍
    티스토리챌린지
    해시
    유니티
    자료구조
    그리디
    맵
    우선순위큐
    골드메탈
    재귀
    큐
    오블완
    정렬
    유니티 프로젝트
    이벤트 트리거
    바킹독
    시뮬레이션
    언리얼
    이분탐색
    백트래킹
    유니티 공부 정리
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
dubu0721
[백준] 13305번 주유소
상단으로

티스토리툴바