[백준] 5575

당당·2023년 7월 4일
0

백준

목록 보기
175/179

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

📔문제

JOI 상사는 직원의 근무시간을 타임 카드로 관리하고있다. 직원들은 전용 장비를 사용하여 타임 카드에 출근 시간을 기록한다. 근무를 마치고 퇴근할 때도 타임 카드에 퇴근 시간을 기록한다. 타임카드에서 사용하는 시간단위는 24 시간제를 사용한다.

보안상의 이유로 직원들의 출근 시간은 7시 이후이다. 또한, 모든 직원은 23시 이전에 퇴근한다. 직원의 퇴근 시간은 항상 출근 시간보다 늦다.

입력으로 JOI 상사의 3 명의 직원 A 씨, B 씨, C 씨의 출근 시간과 퇴근 시간이 주어 졌을 때 각 직원의 근무시간을 계산하는 프로그램을 작성하라.

📝입력

입력은 3 행으로 구성된다.

첫 번째 줄에는 A 씨의 출근 시간과 퇴근 시간,

두 번째 줄에는 B 씨의 출근 시간과 퇴근 시간,

세 번째 줄에는 C 씨의 출근 시간과 퇴근 시간이 각각 공백으로 구분되어 있다.

시간은 각각 공백으로 구분된 3 개의 정수로 쓰여져있다.

3 개의 정수 h(7 ≦ h ≦ 22), m(0 ≦ m ≦ 59), s(0 ≦ s ≦ 59)hms 초를 나타낸다.


📺출력

첫 번째 줄에 A 씨의 근무 시간,

두 번째 줄에 B 씨의 근무 시간,

세 번째 줄에 C 씨의 근무 시간을 출력하라.

근무 시간이 h 시간 ms 초이면 h, m, s의 순으로 공백으로 분리하여 출력하라.


📝예제 입력 1

9 0 0 18 0 0
9 0 1 18 0 0
12 14 52 12 15 30

📺예제 출력 1

9 0 0
8 59 59
0 0 38

🔍출처

Olympiad > Japanese Olympiad in Informatics > Japanese Olympiad in Informatics Qualification Round > JOI 2011 예선 1번
-문제를 번역한 사람: baekjoon, joonas


🧮알고리즘 분류

  • 수학
  • 구현
  • 사칙연산

📃소스 코드

import java.util.Scanner;

public class Code5575 {
    public static void main(String[] args) {
        Scanner sc=new Scanner(System.in);
        for(int i=0;i<3;i++){
            int goH=sc.nextInt();
            int goM=sc.nextInt();
            int goS=sc.nextInt();

            int brH=sc.nextInt();
            int brM=sc.nextInt();
            int brS=sc.nextInt();

            int se=brS-goS;
            if(se<0){
                brM=brM-1;
                se+=60;
            }
            int mi=brM-goM;
            if(mi<0){
                brH-=1;
                mi+=60;
            }
            int ho=brH-goH;
            System.out.println(ho+" "+mi+" "+se);
        }
    }
}


📰출력 결과


📂고찰

각각을 변수로 입력받아서 초->분->시 순으로 계산하면 된다.
만약 초나 분이 -로 나오면 그 다음 분 또는 시에서 1씩 빌려 1*60을 더해주면 된다.

profile
MySQL DBA 신입 지원

0개의 댓글