[백준 5575] 타임 카드 (C#, C++) - soo:bak
작성일 :
문제 링크
설명
직원의 출근 시간과 퇴근 시간이 주어졌을 때,
근무 시간을 시, 분, 초 단위로 구하는 문제입니다.
시간은 24시간제
로 표현되며, 각 시간은 시 분 초
의 형태로 입력됩니다.
입력은 직원 3명
에 대한 정보가 한 줄씩 주어지며, 각 직원의 출근 시각과 퇴근 시각의 순서입니다.
접근법
- 출근 시각과 퇴근 시각을 초 단위로 환산합니다.
- 퇴근 시각과 출근 시각을 모두 초 단위로 바꾼 후, 두 시각의 차이를 계산해 근무 시간을 구합니다.
- 이 값을 다시 시, 분, 초로 환산하여 출력합니다.
- 동일한 과정을
3
번 반복하여 모든 직원의 근무 시간을 구합니다.
Code
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
using System;
class Program {
static void Main() {
for (int i = 0; i < 3; i++) {
var parts = Console.ReadLine().Split();
int sh = int.Parse(parts[0]), sm = int.Parse(parts[1]), ss = int.Parse(parts[2]);
int eh = int.Parse(parts[3]), em = int.Parse(parts[4]), es = int.Parse(parts[5]);
int totalSeconds = (eh * 3600 + em * 60 + es) - (sh * 3600 + sm * 60 + ss);
int h = totalSeconds / 3600;
int m = (totalSeconds % 3600) / 60;
int s = totalSeconds % 60;
Console.WriteLine($"{h} {m} {s}");
}
}
}
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <bits/stdc++.h>
using namespace std;
int main() {
ios::sync_with_stdio(false);
cin.tie(nullptr);
for (int i = 0; i < 3; i++) {
int sh, sm, ss, eh, em, es;
cin >> sh >> sm >> ss >> eh >> em >> es;
int t = eh * 3600 + em * 60 + es - (sh * 3600 + sm * 60 + ss);
cout << t / 3600 << ' ' << t % 3600 / 60 << ' ' << t % 60 << "\n";
}
return 0;
}