본문 바로가기

Algorithm/Implementation

(C++) - 백준(BOJ) 9493 : 길면 기차, 기차는 빨라, 빠른 것은 비행기

반응형

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

 

9493번: 길면 기차, 기차는 빨라, 빠른 것은 비행기

한 줄에 테스트 케이스가 하나씩 주어진다. 각 테스트 케이스는 세 개의 정수 M(1 ≤ M ≤ 10,000), A 그리고 B(1 ≤ A < B ≤ 1000)로 이루어져 있다. 정수는 공백으로 구분되어 있다. 마지막 테스트 케이

www.acmicpc.net

구현 문제였습니다.

📕 풀이방법

📔 입력 및 초기화

거리 m(km), 기차의 속도 a(km/h), 비행기의 속도 b(km/h)를 입력 받습니다.

📔 풀이과정

시간 = 거리 / 속도입니다. 각 교통수단에 따른 시간을 구해 저장합니다. 초에 대해 반올림해야 하므로 해당 시간의 차이를 구하고 반올림해줍니다. 이 값은 적절히 정답 형식에 맞춘 함수의 인자가되어 그 반환값이 답이 됩니다.

📔 정답출력

getTimeString변환값의 결과를 출력해줍니다.


📕 Code

#include <bits/stdc++.h>
using namespace std;
double m, a, b;

string getTimeString(double t){
    string tmp;
    int ti = t, hour, minute, sec;

    hour = ti / 3600;
    tmp += to_string(hour) + ":";
    ti %= 3600;

    minute = ti / 60;
    if(minute < 10) tmp += "0";
    tmp += to_string(minute) + ":";
    ti %= 60;

    sec = ti;
    if(sec < 10) tmp += "0";
    tmp += to_string(sec);
    
    return tmp + "\n";
}

int main(){
    while(1){
        cin >> m >> a >> b;
        if(!m && !a && !b) break;
        double aTime = m * 3600 / a;
        double bTime = m * 3600 / b;
        cout << getTimeString(round(aTime - bTime));
    }
}