백준 알고리즘/Lang-C | C++

[백준/C] 15080번 Every Second Counts

Jongung 2021. 9. 18. 02:56

 

백준 온라인 저지 / 15080번 Every Second Counts

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

 

15080번: Every Second Counts

Input consists of two lines: the first contains the start time and the second contains the end time for a single taxi ride. Each time is of the form hh : mm : ss, giving the hour, minute and seconds. Meredith uses a 24 hour clock, with 0 : 0 : 0 representi

www.acmicpc.net

 

  • 사용언어 : C (C99)
  • 알고리즘 : 수학, 구현

 

 

C 코드

1. 문제 정리

메레디스는 루버라고 불리는 택시 서비스를 운영하고 있는데, 이 회사는 서부 펜실베니아에 있는 작은 마을에서 고객들에게 차를 태워준다. 그녀는 택시를 이용하는 사람들에게서 가능한 한 모든 것을 빼앗고 싶어한다. 그래서 그녀의 운전사들은 분당 요금이 아니라 초당 균일 요금을 부과한다. 따라서 고객이 택시를 타는 순간부터 출발하는 순간까지 경과된 시간을 정확히 파악할 수 있는 것이 중요합니다. 이런 일을 할 프로그램을 쓰려고 하니 메레디스가 미쳐버려서 도움을 청하러 왔습니다.

 

총 6개의 입력을 받아 계산 하는 문제이다. 처음 입력한 시간과 뒤에 입력한 시간을 초로 변환하여 (두번째로 입력한 시간 - 첫번째로 입력한 시간)을 계산 하는 문제이다.

t1 , t2를 선언하고 처음 입력 한 시간과 뒤에 입력한 시간을 초 단위로 받아 온 뒤 예외 처리 후 계산 해주는 간단한 구현 문제이다.

2. 완성 코드 

#include <stdio.h>

int main(void) {
  int h1, m1, s1, h2, m2, s2;
  scanf("%d : %d : %d", &h1, &m1, &s1);
  scanf("%d : %d : %d", &h2, &m2, &s2);

  int t1 = h1 * 3600 + m1 * 60 + s1;
  int t2 = h2 * 3600 + m2 * 60 + s2;

  if(t1 > t2){
    printf("%d", (t2 - t1 + 3600 * 24));
  }
  else{
    printf("%d", t2-t1);
  }
}