728x90
반응형
"45분 일찍 알람 설정하기"
입력
첫째 줄에 두 정수 H와 M이 주어진다. (0 ≤ H ≤ 23, 0 ≤ M ≤ 59)
그리고 이것은 현재 상근이가 설정한 놓은 알람 시간 H시 M분을 의미한다.
입력 시간은 24시간 표현을 사용한다.
24시간 표현에서 하루의 시작은 0:0(자정)이고, 끝은 23:59(다음날 자정 1분 전)이다.
시간을 나타낼 때, 불필요한 0은 사용하지 않는다.
출력
첫째 줄에 상근이가 창영이의 방법을 사용할 때, 설정해야 하는 알람 시간을 출력한다.
(입력과 같은 형태로 출력하면 된다.)
10:10 -> 9:25
0:30 -> 23:45
23:40 -> 22:55
import java.util.*;
public class Main{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
int H = sc.nextInt();
int M = sc.nextInt();
sc.close();
if(H == 0) { //0시
if(M < 45){ //0시 45분 이전이면 -> 그전날 23시 (60+M)-45 = M + 15분
H = 23;
M = M + 15;
} else { //0시 45분 이후이면 : 0시 M-45분
M = M - 45;
}
} else { //0시 아닌 경우
if(M < 45){ //0시 아니고 45분 이전 -> H-1 시 M+15분
H = H - 1;
M = M + 15;
} else { //0시 아니고 45분~59분인 경우 -> H시 (M-45)분
M = M - 45;
}
}
String answer = "";
answer= Integer.toString(H) + " " + Integer.toString(M);
System.out.println(answer);
}
}
출력케이스를 친절하게 보여줘서 케이스에 맞게 로직 설계만 잘 하면 되는 일
케이스를 빼먹지 않는게 포인트
0시 45분~59분 구간 빼먹을 뻔 했다.
P과장님의 최근 코드리뷰 피드백이 또 귓전에 들렸다.
만두씨, 로직이 사선으로 흐르게 하면 가독성도 좋고 훨씬 보기 편하지 않을까?
728x90
반응형
'study > CodingTest' 카테고리의 다른 글
백준 11021 A+B 다른 방법으로 접근하기 - BufferedReader (Java) (0) | 2021.11.05 |
---|---|
백준 2753 윤년 판별 (Java) (0) | 2021.11.05 |
백준 10950 A+B 주어진 개수만큼 반복 출력하기 (Java) (0) | 2021.11.05 |
백준 2588 곱셈 손계산 구현하기 (Java) (0) | 2021.11.03 |
백준 10171 고양이 출력하기 (Java) : 이스케이프 문자 (0) | 2021.10.30 |
댓글