ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Algorithm] Softeer/L1/근무 시간
    Algorithm/문제 풀이 2023. 4. 8. 23:27

    하루입니다.

    https://softeer.ai/practice/info.do?idx=1&eid=990 

     

    Softeer

    연습문제를 담을 Set을 선택해주세요. 취소 확인

    softeer.ai

     


     

    Softeer라는 코테 플랫폼이 있다는 걸 알고 한 번 풀어봤다. 참고로 Softeer는 현대자동차그룹에서 만든 SW 플랫폼임. C나 모빌리티에 관심 있는 사람이 있다면 참고하면 좋을 듯.

     


     

    출력형식

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

     

    입력예제1
    10:00 19:00
    09:00 15:00
    10:00 11:00
    11:00 22:00
    09:00 15:00

     

    출력예제1
    1980
    월요일에 9시간, 화요일에 6시간, 수요일에 1시간, 목요일에 11시간, 금요일에 6시간을 근무하였다. 총 근무 시간은 9 + 6 + 1 + 11 + 6 = 33시간, 즉 33 × 60 = 1980분이다.

     

    이런 문제다.

     


     

    사고 방식은

    1. 먼저 출력값 분을 담을 int min = 0;
    2. 일단 숫자를 나눠야겠다. " "기준으로 출근 퇴근으로 나누자.
    3. 그 다음은 시와 분을 나눠야겠다. ":" 기준으로 시 분으로 나누자.
    4. 분을 구하기 위해 시간2-시간1을 하자.
    5. 분을 구하기 위해 분2-분1을 하자. (여기서 실수함)
    6. 반복문 안에서 2-5의 과정을 반복하고, 반복이 끝나면 min을 반환하자.

     

    그런데 first try 실패함.

    이유 : 만약 10:30 11:20이 주어졌다면 60 - 10의 방식으로 진행되어야 했음. 그런데 헷갈려서 20-30이 아닌 30-20의 방식을 사용했고, 결과적으로 60 + 10의 결과가 되어 70분이 출력됨. 

    해결 : 그냥 뒤에서 앞에 거 빼니까 해결. 왜 헷갈린 거지? ㅋㅋㅋㅋㅋㅋㅋㅋㅋ

     

     

    코드

    import java.util.*;

    import java.io.*;

    public class Main
    {
        public static void main(String args[]) throws Exception
        {
            BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
            int min = 0;
            for(int i = 0; i < 5; i++) {
                String[] sarr = br.readLine().split(" ");
                String[] arr1 = sarr[0].split(":");
                String[] arr2 = sarr[1].split(":");
                int h1 = Integer.parseInt(arr1[0]);
                int h2 = Integer.parseInt(arr2[0]);
                int m1 = Integer.parseInt(arr1[1]);
                int m2 = Integer.parseInt(arr2[1]);

                min += ((h2-h1)*60) + (m2-m1);
            }
            System.out.println(min);
        }
    }

     


     

    Softeer 느낀 점

    플랫폼 경험은 조금 불편했는데, IDE는 가장 마음에 들었다. 보니까 레벨 1은 해설 강의가 없던데 해설 강의 만들어주면 좋겠다. 아주 쉬운 문제지만 고수들이 어떻게 생각하고 푸는지 궁금함. 레벨 2부터는 (아마도) 강의가 있어서 문제를 푼 뒤 강의를 참고해봐야겠다.

     

     

    Github link

    https://github.com/mjkim856/Algorithm/blob/main/Softeer/L1/%EA%B7%BC%EB%AC%B4%20%EC%8B%9C%EA%B0%84

     

Designed by Tistory.