본문 바로가기

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이전 또는 이후이기 때문에 이에 따라 계산해주는 함수 convert를 수행합니다.  1. 이 함수는 바뀐 시간이 음수라면 2400을 더합니다 2. 바뀐 시간이 2400을 넘어가면 2400을 빼줍니다. 3. 분침이 60을 넘는 다면 시간을 올려줘야합니다.  4. 마지막으로 최종 수가 2400을 넘을 수 있으니 그 경우엔 2400을 제합니다.

📔 정답출력

형식에 따라 convert함수의 결과와 함께 출력해줍니다.


📕 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";
}

📕 Test Case

질문게시판에 있습니다.

input
2240


2240 in Ottawa
1940 in Victoria
2040 in Edmonton
2140 in Winnipeg
2240 in Toronto
2340 in Halifax
10 in St. John's