-
백준 2884번 알람시계Programming/BaekJoon 2021. 7. 14. 16:14
시간과 분을 입력받는다.
Scanner를 이용할 수도 있고 BufferedReader를 이용할 수도 있다.
나는 스캐너를 이용했고
조건을 다음과 같이 나누었다.
45분 미만일 경우
-> 분에 15를 더하고 시간에서 1을 빼고,
45분 이상일 경우
-> 분에서 45를 빼기
단, 45분 미만일 경우에
시간이 0인 경우는 시간이 -1이 되므로 시간을 23으로 설정했다.
최종적으로
45분 미만일 경우
-> 분에 15를 더하고
-> 시간이 1 미만인 경우(0인 경우)
-> 시간 = 23
-> 시간이 1이상인 경우
-> 시간 -= 1
45분 이상일 경우
-> 분에서 45를 빼기
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) { if(h <1) { h = 23; } else { h -= 1; } m += 15; } else { m -= 45; } System.out.printf("%d %d",h,m); } }
입력은 BufferedReader를 이용할 수도 있다.
위의 내 풀이가 시간이 그렇게 좋게 나오지는 않았다.
인터넷의 다른 풀이를 보니 StringBuilder를 이용한 방법이 내가 푼 방법보다 2.5배는 더 빠르게 나온 것을 보았다.
'Programming > BaekJoon' 카테고리의 다른 글
백준 10950번 A + B - 3 (0) 2021.07.15 백준 2739번 구구단 (0) 2021.07.14 백준 14681번 사분면 고르기 (0) 2021.07.14 백준 9498번 시험 성적 (0) 2021.07.14 백준 1330번 두 수 비교하기 (0) 2021.07.14