카테고리 없음

9월 20일 수요일 TIL 회고록

tft4rollz 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 강의를 듣고있다. 모르는 부분, 외워야 하는 부분은 블로그에 적어야겠다.