문제
나의 접근 방법
단지, 45분전의 시간만 구하면 되는 것이다.
1. 만약 입력받은 분이 45분보다 작다면 시간은 -1이 되며, 45분전의 시간의 분(M)은 기존의 분 +15분이 된다.
1-1. 이렇게 생각한 이유
2. 시간이 0보다 작아진다면 해당 시간을 23으로 설정하면 된다.
두 가지 입력 방법을 가지고 해결해보자
- Scanner 사용 (소요시간 256ms)
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();
// 분이 45분보다 작다면
if(M<45) {
// 시간은 -1
H--;
// 분은 +15
M = M+15;
// 시간이 0시라면
// 45분전 시간에는 23시이다.
if(H<0) {
H = 23;
}
System.out.print(H+" "+M);
} else {
System.out.print(H+" "+(M - 45));
}
}
}
- BufferedReader 사용 (소요시간 160ms)
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
// 버퍼드리더는 readLine을 통해 한 행을 전부 읽기 때문에
// 공백 단위로 쪼개야 한다.
String[] str = br.readLine().split(" ");
int H = Integer.parseInt(str[0]);
int M = Integer.parseInt(str[1]);
// 분이 45분보다 이전이라면
if(M<45) {
H--;
M = M+15;
// 시간이 0시라면
// 45분전 시간에는 23시이다.
if(H<0) {
H = 23;
}
System.out.print(H+" "+M);
} else {
System.out.print(H+" "+(M - 45));
}
}
}
'코딩테스트' 카테고리의 다른 글
[백준/JAVA] 15552 빠른 A+B (BufferedWriter) (0) | 2021.04.27 |
---|---|
[백준/JAVA] 10950번 A+B-3 (0) | 2021.04.27 |
[구름LEVEL] 3차원 배열 (0) | 2021.03.15 |
[구름LEVEL] 369 게임 (0) | 2021.03.13 |