[TIL] 22.08.08

진이진이·2022년 8월 9일
0

TIL

목록 보기
73/74

백준 알고리즘 ( 2884 알람시계 )

구상한 알고리즘 ( 변경 전 )

  • 예제와 같은 입력값을 주기 위해 Scanner를 사용하였고, 45분 빠르게 출력하기 위해서 시간은 -1 분은 +15을 해주었다.
    정상적으로 작동했지만 백준에선 틀리다고 나왔다...

    import java.util.Scanner;
    
    public class Main {
        public static void main(String[] args)  {
            Scanner sc = new Scanner(System.in);
    
            int H = sc.nextInt();
            int M = sc.nextInt();
    
            int hour = H-1;
            int minute = M+15;
    
            if(H == 1){
                System.out.println(12+" "+minute);
    
            }if(H == 0){
                System.out.println(23+" "+minute);
            }else {
                System.out.println(hour+" "+minute);
            }
        }
    }

    변경 후

    import java.util.Scanner;
    
    public class Main {
        public static void main(String[] args)  {
            Scanner sc = new Scanner(System.in);
    
          int H = sc.nextInt();
          int M = sc.nextInt();
    
          if (M < 45) {
              H--;
              int minute = M + 15;
              if (H < 0) {
                  H = 23;
              }
              System.out.println(H + " " + minute);
          }else {
              System.out.println(H + " " + (M - 45));
          }
      }
    }

    입력값은 Scanner로 똑같이 해주었지만 조건문을 추가해주었다.
    45분보다 낮을땐 H값을 하나씩 뺴주고 분에 15를 더해주었고
    -1값이 나올수 있기떄문에 H에도 조건을 걸어주어 23시로 맞춰주었다.

profile
개발 어린이

0개의 댓글