# 문제
# 코드
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String[] strs = br.readLine().split(" ");
int H = Integer.parseInt(strs[0]);
int M = Integer.parseInt(strs[1]);
int M2 = M - 45; // - 45분 해주기
if (M2 < 0) { // - 45한 값이 0 보다 작으면 시간 - 1 해주기.
int H2 = H - 1;
M2 += 60; // 분이 음수이면 60분 더해주기.
if (H2 < 0) { // 시간이 음수이면 24시간 더해주기.
H2 = H2 + 24;
}
System.out.println(H2 + " " + M2);
} else {
System.out.println(H + " " + M2);
}
}
}
# 입/출력 결과
# 과정
- 입력은 BufferedReader + InputStreamReader 사용.
- 한 줄로 입력되기 때문에 String[] 로 .split(" ") 사용해서 공백 기준으로 나누어서 배열로 저장.
- 저장된 배열의 각각의 값을 int타입의 H, M에 저장.
- int 타입의 M2를 만들어서 M - 45; 값을 저장. (45분 전 알림이니까.)
- if문을 사용하여 본격적으로 식 계산.
- M2가 0 보다 작으면 다음 식을 만들었음.
- int타입의 H2를 만들어서 H - 1을 해줌. (분이 음수이니까 시간을 -1 해줘야함)
- 여기서 만약에 H2가 0 보다 작으면 + 24를 해주기. (시간은 24시간 표기 방법을 사용하니까)
- M2의 값을 + 60(60분)을 해주기. (예제 출력된 값을 보면 입력된 분 - 45 + 60 해주면 되는 걸 알게 됨)
- H2와 M2 값 출력.
- M2가 0 보다 크면 H와 M2 출력.
# 느낀 점
- 다른 사람들이 성공한 소스코드를 보니 간결하게 만든 사람도 있었다. 서로 다르게 작성한게 재밌기도 하고 이렇게도 작성할 수 있구나 라고 알게 되었다. 여튼, 재밌다. ㅎㅎ