항해 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
반응형