본문 바로가기

Algorithm/Implementation

(C++) - 백준(BOJ) 6812 : Good times

반응형

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

 

6812번: Good times

A mobile cell service provider in Ottawa broadcasts an automated time standard to its mobile users that reflects the local time at the user’s actual location in Canada. This ensures that text messages have a valid local time attached to them. For example

www.acmicpc.net

간단한 계산, 구현 문제였습니다.

📕 풀이방법

📔 입력 및 초기화

시간 t를 선언 후 t를 입력해줍니다.

📔 풀이과정

 세 가지 경우가 있습니다. 

1. 계산된 시간이 음수면 : 그 시간 + 2400을 해줍니다. 

2. 계산된 시간이 2400이면 : 그 시간 - 2400을 해줍니다. 

3. 마지막 두 자릿수가 60만 넘어가면 시간을 1더하고 -60을 빼주기만 하면 됩니다.

📔 정답출력

계산된 시간과 문자열을 적절히 출력해줍니다.


📕 Code

#include <bits/stdc++.h>
using namespace std;
int t;

int convert(int ti){
    int tmp = ti;
    if(ti < 0) tmp = ti + 2400;
    if(ti >= 2400) tmp = ti - 2400;
    if(tmp % 100 >= 60) tmp = 100 * (tmp / 100 + 1) + tmp % 100 - 60;
    if(tmp >= 2400) tmp -= 2400;
    return tmp;
}

int main(){
    cin >> t;
    cout << t << " in Ottawa\n";
    cout << convert(t - 300) << " in Victoria\n";
    cout << convert(t - 200) << " in Edmonton\n";
    cout << convert(t - 100) << " in Winnipeg\n";
    cout << t << " in Toronto\n";
    cout << convert(t + 100) << " in Halifax\n";
    cout << convert(t + 130) << " in St. John's";
}