- 문제
https://www.acmicpc.net/problem/2884
'시각'단위인 정수형 H의 범위는 0~23까지, '분'단위인 정수형 M의 범위는 0~59까지이다.
24시는 0시로 표현되므로 H의 범위는 24가아닌 23까지이다. 60분은 0분으로 초기화되어 표현가능하므로 M의범위는 60분까지가 아닌 59분까지로 표기되어야 한다.
※ 주의할 점
24시간 표현을 사용한다
입력은 공백 한 칸을 기준으로 구분되어 입력된다.
출력시 불필요한 0은 사용하지 않는다.
조건문 프리뷰
1-1:min 분단위가 45보다 작은지 -if(min<45)
2-1: 예를들어 40분일때 45를빼면 -5분일수는 없다.더군다나 자정인경우00:00인데 -1:00일수도 없다 -if(hour<0)
1-2:1-1의 else
- 코드1
import java.util.Scanner;
public class Main{
public static void main(String[] args){
Scanner in= new Scanner(System.in);
int H=in.nextInt();
int M=in.nextInt();
in.close();
if(M<45){
H--;//시(hour) 1감소
M=60-(45-M);//분(min)감소
if(H<0){
H=23;
}
System.out.println(H+" "+M);
}
else{
System.out.println(H+" "+(M-45));
}
}
}
- 결과
- 코드2
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));
String[] str=br.readLine().split(" ");
int H = Integer.parseInt(str[0]);
int M = Integer.parseInt(str[1]);
if(M < 45) {
H--;
M = 60 - (45 - M);
if(H < 0) {
H = 23;
}
System.out.println(H + " " + M);
}
else {
System.out.println(H + " " + (M - 45));
}
}
}
- 결과
- 코드3
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;
import java.util.StringTokenizer;
public class Main{
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(br.readLine()," ");
int H = Integer.parseInt(st.nextToken());
int M = Integer.parseInt(st.nextToken());
StringBuilder sb = new StringBuilder();
if(M < 45) {
if(H == 0){
H = 23;
sb.append(H).append(' ');
} else {
H--;
sb.append(H).append(' ');
}
sb.append(M = 60 - (45 - M));
}
else {
sb.append(H).append(' ').append(M - 45);
}
System.out.println(sb);
}
}
- 결과
- 코드1,2,3 속도비교
'Computer Science > BAEKJOON JAVA Practice' 카테고리의 다른 글
[백준]10950번: A+B-3 (0) | 2022.01.08 |
---|---|
[백준]2739번: 구구단 (0) | 2022.01.08 |
[백준]14681번: 사분면 고르기 (0) | 2021.12.26 |
[백준]2753번: 윤년계산 (0) | 2021.12.26 |
[백준]9498번: 시험성적표 출력 (0) | 2021.12.26 |