항해 99 5기

코테 2번째 문제

65살까지 코딩 2022. 1. 20. 18:04
728x90
반응형
class Main {
    public static String solution(String[] checkIn, String[] checkOut) {
        int checkInHour = 0;
        int checkInMinute =0;
        int checkOutMinute = 0;
        int checkOutHour = 0;
        int minute = 0;
        int hour =0;
        //체크인 배열과 체크아웃 배열을
        //시간과 분으로 나누어 
        //hour과 minute에 저장하도록함
        for (int i = 0; i < checkIn.length; i++) {
            String[] check1 = checkIn[i].split(":");
            String[] check2 = checkOut[i].split(":");
            checkInHour = Integer.parseInt(check1[0]);
            checkInMinute = Integer.parseInt(check1[1]);
            checkOutHour = Integer.parseInt(check2[0]);
            checkOutMinute = Integer.parseInt(check2[1]);


            //hour이 29보다 크다면
            //5시가 넘었기 때문에 9시 0분으로 변환
            if(checkOutHour >= 29){
                checkOutHour = 21;
                checkOutMinute = 0;
            }
            //시간의 차이를 구해주고
                hour += checkOutHour-checkInHour;
            //분의 차이를 구할 떄
            //체크아웃 분이 체크인 분 보다 작다면
            //체크아웃에 60을 더해준다음에 -체크인 분을 해줘야함
            //60을 더해줬기 때문에 전체 hour에서 -1을함
                if(checkInMinute > checkOutMinute){
                    hour--;
                    minute += (checkOutMinute+60-checkInMinute);
                }else{
                  //체크아웃 분이 체크인 분 보다 크다면 그냥 뺴주면됨
                    minute += (checkOutMinute-checkInMinute);
                }
            }
            

		//분을 시간으로 바꿔주는 부분
        // 나눗셈과 나머지를 통해서도 가능
        while(true){
            if(minute <60){
                break;
            }else{
                minute -=60;
                hour++;
            }
        }
        String answer = hour+"시간" + minute+ "분";
        return answer;

    }

    public static void main(String[] args) {
        String[] arr1 = {"8:42", "9:00", "8:50", "8:47", "9:01", "8:51", "8:59"};
        String[] arr2 = {"21:42", "23:10", "25:30", "29:10", "23:11", "26:44", "29:26"};

        System.out.println(solution(arr1, arr2));
    }

}
728x90
반응형