2 분 소요

📌 난이도

⭐️⭐️

💡 문제

여러 번의 주행 기록이 주어집니다. 각 주행에서 이동한 거리(km)와 사용한 연료의 양(L)이 주어질 때, 전체 주행에 대한 평균 연비(km/L)를 계산하는 프로그램을 작성하세요.

입력

첫 번째 줄에 주행 횟수 N이 주어집니다.

다음 N개의 줄에는 각 주행에서 이동한 거리와 사용한 연료의 양이 실수로 주어집니다.

출력

전체 주행에 대한 평균 연비를 소수점 둘째 자리까지 출력하세요.

입력 예시

3
100 5
150 10
50 7.5

출력 예시

13.33

📝 풀이

전체 이동 거리의 합과 전체 사용 연료의 합을 구한 후, 평균 연비를 계산합니다.

📃 소스코드

// C
#include <stdio.h>

int main() {
    int N;
    double distance, fuel;
    double total_distance = 0.0, total_fuel = 0.0, average_efficiency;

    // Read the number of trips
    scanf("%d", &N);

    for (int i = 0; i < N; i++) {
        // Read distance and fuel for each trip
        scanf("%lf %lf", &distance, &fuel);
        total_distance += distance;
        total_fuel += fuel;
    }

    // Calculate average efficiency
    average_efficiency = total_distance / total_fuel;

    // Print the average efficiency up to two decimal places
    printf("%.2lf\n", average_efficiency);

    return 0;
}

설명

변수

  • N: 여행의 횟수.
  • distance, fuel: 각 여행의 입력값을 임시로 저장할 변수.
  • total_distance, total_fuel: 총 주행 거리와 연료 소비량의 합.
  • average_efficiency: 계산된 평균 연비.

단계

  • 전체 여행 횟수 N을 읽습니다.
  • N번 반복하면서 각 여행의 주행 거리와 연료량을 입력받습니다.
  • 총 주행 거리와 총 연료량을 누적합니다.
  • 총 주행 거리를 총 연료로 나누어 평균 연비를 계산합니다.
  • 평균 연비를 소수점 두 자리까지 포맷하여 출력합니다.
// rust
use std::io::{self, BufRead};

fn main() {
    // Create a handle to the standard input
    let stdin = io::stdin();
    let mut lines = stdin.lock().lines();

    // Read the number of trips N
    let n: usize = lines
        .next()
        .unwrap()
        .unwrap()
        .trim()
        .parse()
        .unwrap();

    let mut total_distance = 0.0_f64;
    let mut total_fuel = 0.0_f64;

    // Read each trip's distance and fuel consumption
    for _ in 0..n {
        let line = lines.next().unwrap().unwrap();
        let mut nums = line.split_whitespace().map(|s| s.parse::<f64>().unwrap());

        let distance = nums.next().unwrap();
        let fuel = nums.next().unwrap();

        total_distance += distance;
        total_fuel += fuel;
    }

    // Calculate the average efficiency
    let average_efficiency = total_distance / total_fuel;

    // Print the average efficiency up to two decimal places
    println!("{:.2}", average_efficiency);
}

설명

Imports

std::io::{self, BufRead}: 콘솔에서 입력을 읽기 위해 사용됩니다.

변수 n: 여행의 횟수. total_distance, total_fuel: 총 주행 거리와 총 연료 소비량.

단계

  • 표준 입력을 잠그고 입력된 줄들에 대한 반복자를 생성합니다.
  • 첫 번째 줄을 읽어 여행 횟수 n을 가져옵니다.
  • 각 여행의 주행 거리와 연료량을 읽기 위해 n번 반복합니다:
  • 각 줄을 공백으로 나눕니다.
  • 주행 거리와 연료량을 f64 타입으로 파싱합니다.
  • 총 주행 거리와 연료량을 누적합니다.
  • 평균 연비를 계산합니다.
  • 결과를 소수점 두 자리까지 포맷하여 출력합니다.

맨 위로 올라가기

저의 글을 읽어 주셔서 감사합니다. 문제가 있으면 저의 메일로 연락 주시면 감사하겠습니다. 댓글과 피드백 또한 감사합니다.
Thank you for visiting my blog. If you have any problems, please contact me by e-mail. Thanks also for the comments and feedback.

태그: , , , ,

카테고리: ,

업데이트:

댓글남기기