SMALL

https://www.acmicpc.net/problem/13305

 

13305번: 주유소

표준 입력으로 다음 정보가 주어진다. 첫 번째 줄에는 도시의 개수를 나타내는 정수 N(2 ≤ N ≤ 100,000)이 주어진다. 다음 줄에는 인접한 두 도시를 연결하는 도로의 길이가 제일 왼쪽 도로부터 N-1

www.acmicpc.net


  • 문제


  • 문제풀이
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApp4
{
    internal class Program
    {
        static void Main(string[] args)
        {
            int N = int.Parse(Console.ReadLine());
            int[] road_data = Array.ConvertAll(Console.ReadLine().Split(), int.Parse);
            long[] cost_data = Array.ConvertAll(Console.ReadLine().Split(), long.Parse);
            
            long cost = 0;
            long minprice=cost_data[0];
            for(int i = 0; i < N - 1; i++)
            {
                if(cost_data[i] < minprice)
                {
                    minprice = road_data[i];
                }
                cost+=minprice*road_data[i];
            }
            Console.WriteLine(cost);
        }
    }
}

첫 번째 주유소부터 시작하여, 현재까지 최소 가격을 계속 갱신하며 각 도시까지 이동하는 데 필요한 비용을 계산하고
현재 도시에서 주유할 때 가격이 현재까지 최소 가격보다 작다면, 그 가격으로 최소 가격을 바꿔서 계산된 비용을 cost에 누적한뒤 출력했다.

그리고 17점이 나왔다.


  • 코드 1
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApp4
{
    internal class Program
    {
        static void Main(string[] args)
        {
            int N = int.Parse(Console.ReadLine());
            int[] road_data = Array.ConvertAll(Console.ReadLine().Split(), int.Parse);
            long[] cost_data = Array.ConvertAll(Console.ReadLine().Split(), long.Parse);
            
            long cost = 0;
            long minprice=cost_data[0];
            for(int i = 0; i < N - 1; i++)
            {
                if(cost_data[i] < minprice)
                {
                    minprice = cost_data[i];
                }
                cost+=minprice*road_data[i];
            }
            Console.WriteLine(cost);
        }
    }
}

road_data가 아닌 cost_data로 바꾸고 100점을 받았다.


  • 후기

헷갈린다..

LIST

'백준 > C#' 카테고리의 다른 글

[C#]백준 1541번: 잃어버린 괄호  (0) 2023.07.19
[C#]백준 11047번: 동전 0  (0) 2023.07.19
[C#]백준 11399번: ATM  (0) 2023.07.19
[C#]백준 1931번: 회의실 배정  (0) 2023.07.19
[C#]백준 2630번: 색종이 만들기  (0) 2023.03.29

+ Recent posts