본문 바로가기
코딩테스트

[Softeer ] 근무시간 - java(level1)

by JINJINC 2023. 8. 7.
728x90
반응형

 문제 


당신은 인사팀 직원으로, 각 직원의 근태를 확인하고자 한다.

당신의 회사는 자율출퇴근제를 실시하기 때문에 각 직원이 정확히 몇 시에 출근하는 것은 중요하지 않고, 총 근로 시간이 몇 분인지가 중요하다. 총 근로 시간이 법정근로시간을 초과하지 않아야 하면서, 회사와 직원 사이에 계약한 시간 이상이어야 하기 때문이다.

직원이 하루 동안 근무한 시간은 출근 시각과 퇴근 시각 사이의 시간으로 정의한다. 이 문제에서는 식사 시간 등 근무 외 시간을 근무 시간에서 제외하지 않음에 유의하라.

월요일부터 금요일까지 휴가를 쓰지 않은 직원이 매 요일 언제 출근하고 언제 퇴근했는지가 주어질 때, 이 직원이 5일 동안 총 몇 분을 근무했는지를 구하는 프로그램을 작성하라.

 

 

제약조건


직원은 밤을 새서 일하지 않았다. 즉, 출근 시각과 퇴근 시각은 00:00 이후, 24:00 이전에 이루어졌다.

 

출퇴근 시각은 HH:MM과 같은 형식으로 주어진다.
HH는 00, 01, 02, .., 22, 23 중 하나이다.
MM는 00, 01, 02, .., 58, 59 중 하나이다.
직원은 매일 1분 이상은 일하였다. 

 

 

출력 형식


첫 번째 줄에 직원의 총 근무 시간을 분 단위로 출력한다.

 

 

코드 

import java.util.*;
import java.io.*;


public class Main
{
    public static void main(String args[]) throws IOException
    {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in) );
        int total = 0;
        
         for (int i=0; i<5; i++){
            StringTokenizer st = new StringTokenizer( br.readLine()," ");
            String start = st.nextToken();
            String finish = st.nextToken();
            int startH =  Integer.parseInt(start.substring(0,2));
            int startM = Integer.parseInt(start.substring(3,5));
            int finishH = Integer.parseInt(finish.substring(0,2));
            int finishM = Integer.parseInt(finish.substring(3,5));
            total += ((60 - startM) + (finishH - startH -1)*60 + finishM) ;
        }
        System.out.println(total);

    }
}

 

728x90
반응형

'코딩테스트' 카테고리의 다른 글

[Softeer] 바이러스 level2 - Java  (0) 2023.08.07
[Softeer] A+B - Java  (0) 2023.08.07
[Softeer] 주행거리 비교하기- JAVA  (0) 2023.08.06

댓글