반응형
https://www.acmicpc.net/problem/15080
단순 시간계산 문제였습니다.
📕 풀이방법
📔 입력 및 초기화
입력 format이 똑같기 때문에 int형 배열에 scanf함수를 이용해 입력받을 수 있습니다.
1. 시작시간의 시,분,초, 끝시간의 시,분,초를 저장할 일차원 배열 a,b를 선언. 초로 환산한 시작과 끝시작을 저장할 변수 startTime, endTime을 선언합니다.
2. a, b배열에 적절히 입력합니다.
📔 풀이과정
각 시간을 초로 환산한 값은 시 * 3600 + 분 * 60 + 초가 됩니다. a, b배열 각각에 대해 해당공식을 적용해 startTime, endTime에 저장합니다.
📔 정답출력
1. startTime > endTime인 경우 : 자정을 넘겼으므로 24시 * 3600 - startTIme + endTime이 곧 택시에 손님을 태운 시작시간과 손님이 내린시간의 시간 차이입니다. 이 값을 출력합니다.
2. 그 외 : 그냥 endTime - startTime한 값을 출력합니다.
📕 Code
#include <bits/stdc++.h>
using namespace std;
int a[3], b[3], startTime, endTime;
int main(){
scanf("%d : %d : %d", &a[0], &a[1], &a[2]);
scanf("%d : %d : %d", &b[0], &b[1], &b[2]);
startTime = a[2] + a[1] * 60 + a[0] * 3600;
endTime = b[2] + b[1] * 60 + b[0] * 3600;
if(startTime > endTime) cout << 24 * 3600 - startTime + endTime;
else cout << endTime - startTime;
}
'Algorithm > Implementation' 카테고리의 다른 글
(C++) - 백준(BOJ) 16785 : ソーシャルゲーム (Social Game) (0) | 2021.10.28 |
---|---|
(C++) - 프로그래머스(월간 코드 챌린지 시즌3) : 나머지가 1이 되는 수 찾기 (0) | 2021.10.22 |
(C++) - 백준(BOJ) 14065 : Gorivo (0) | 2021.10.14 |
(C++) - 백준(BOJ) 15025 : Judging Moose (0) | 2021.10.13 |
(C++) - 백준(BOJ) 15059 : Hard choice (0) | 2021.10.12 |