ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 9월 20일 수요일 TIL 회고록
    카테고리 없음 2023. 9. 21. 02:14

    백준 2884번 알람 시계


    문제, 입력, 출력, 예제 입력

    풀이

    import java.util.Scanner;
    
    public class baekjoonCoding {
    
      public static void main(String[] args) {
    
        Scanner sc = new Scanner(System.in);
        int h = sc.nextInt();
        int m = sc.nextInt();
        int newH = 0;
        int newM = 0;
    
        int alarm = 15; // 60 - 45 == 15
    
        if (m + alarm < 60 && h > 1) {
          newH = h - 1;
          newM = m + alarm;
          System.out.println(newH);
          System.out.println(newM);
        } else if (m + alarm > 60 && h >=1 ) {
          newM = m - 45;
          System.out.println(h);
          System.out.println(newM);
        } else if (m + alarm < 60 && h <= 0) {
          newH = 23;
          newM = m + alarm;
          System.out.println(newH);
          System.out.println(newM);
        } else if (m + alarm > 60 && h <= 0) {
          newH = 0;
          newM = m - 45;
          System.out.println(newH);
          System.out.println(newM);
        } else if (m == 45) {
          System.out.println(h);
          System.out.println(0);
        } else if (m + alarm < 60 && h == 1) {
          newH = 0;
          newM = m + alarm;
          System.out.println(newH);
          System.out.println(newM);
        }
    
    
      }
    }

    엄~~청 지저분하다 ㅠㅠ.. 급하게 정답만 맞추려고 하다 보니까 지저분해졌다... 

    입력받은 분에 15를 더한 값이 60보다 작으면 45보다 작다는 뜻이니까 시를 -1 해주고, 반대로 입력받은 분에 15를 더한 값이 60보다 크면 45보다 크다는 뜻이니까 시는 냅두고 입력받은 분에 -45를 해주었다.

    또한 if문에 h 조건문을 추가해서 입력받은 시가 0보다 작을 경우 23으로 수정해주었다.

    입력받은 분이 45분이라면 입력받은 시간은 그대로 출력하고 초는 0으로 출력하였다.

    이런식으로 else-if 문을 계속 만들어서 반례들이 맞는지 확인했다.

     


    코딩 테스트와 김영한 강사님의 스프링 부트와 JPA 활용1 강의를 듣고있다. 모르는 부분, 외워야 하는 부분은 블로그에 적어야겠다.

Designed by Tistory.