[백준 26752] Zegarek (C#, C++) - soo:bak
작성일 :
문제 링크
설명
시, 분, 초가 주어질 때 1초 뒤의 시각을 구해 HH:MM:SS 형식으로 출력하는 문제입니다. 23:59:59에서 1초 뒤는 00:00:00으로 돌아갑니다.
접근법
1초를 더한 뒤 자리 올림을 처리하면 됩니다. 초가 60이 되면 0으로 바꾸고 분을 1 증가시킵니다. 분이 60이 되면 마찬가지로 0으로 바꾸고 시를 1 증가시킵니다. 시가 24가 되면 0으로 되돌립니다.
출력 시 각 값을 두 자리로 맞추기 위해 앞에 0을 채워 출력합니다.
Code
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
using System;
class Program {
static void Main() {
var parts = Console.ReadLine()!.Split();
var h = int.Parse(parts[0]);
var m = int.Parse(parts[1]);
var s = int.Parse(parts[2]);
s++;
if (s == 60) { s = 0; m++; }
if (m == 60) { m = 0; h++; }
if (h == 24) h = 0;
Console.WriteLine($"{h:D2}:{m:D2}:{s:D2}");
}
}
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <bits/stdc++.h>
using namespace std;
int main() {
ios::sync_with_stdio(false);
cin.tie(nullptr);
int h, m, s; cin >> h >> m >> s;
s++;
if (s == 60) { s = 0; m++; }
if (m == 60) { m = 0; h++; }
if (h == 24) h = 0;
cout << setfill('0') << setw(2) << h << ":"
<< setw(2) << m << ":" << setw(2) << s << "\n";
return 0;
}