가장 어려웠던 부분은 24시간을 계산해야되는 점이었다.
(23시에서 0시로 넘어가야 하는 부분)
너무 잘 설명해주신 분 덕분에 고비를 잘 넘겼다. (감사합니다) [백준] 2884번 : 알람 시계 - JAVA [자바] (tistory.com)
▶ 풀이
핵심은 45분 보다 적은지 큰지 여부를 확인하는 것이다.
45분 보다 적다면 시간(h)을 뺀 후 나머지를 분(m)에서 빼고
45분 보다 크다면 분(m)에서만 빼도 된다.
1. Scanner
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner scan=new Scanner(System.in);
int H=scan.nextInt();
int M=scan.nextInt();
scan.close();
if(M<45)
{
H=H-1;
M= 60 - (45 - M); // 45분을 뺀 나머지 분은 60분에서 뺀다.
if(H<0) { // 0시에서 -1을 해버리면 '-1시'가 되기 때문에 23시로 변경.
H=23;
}
System.out.println(H+" "+M);
}
else
{
M=M-45;
System.out.println(H+" "+M);
}
}
}
2. BufferedReader
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.*;
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=H-1;
M= 60 - (45 - M); // 45분을 뺀 나머지 분은 60분에서 뺀다.
if(H<0) { // 0시에서 -1을 해버리면 '-1시'가 되기 때문에 23시로 변경.
H=23;
}
System.out.println(H+" "+M);
}
else
{
M=M-45;
System.out.println(H+" "+M);
}
}
}
'코딩테스트' 카테고리의 다른 글
[1차] 문제2) 해밍 거리 구하기 - JAVA (0) | 2022.10.17 |
---|---|
[COS PRO 1급 기출문제 - Java] 1-1 음식전문점 운영 (0) | 2022.10.16 |
[코딩테스트] 백준 자바 5번 사분면 고르기 (백준 14681번) (0) | 2022.10.09 |
[코딩테스트] 백준 자바 4번 윤년 (백준 2753번) (0) | 2022.10.03 |
[코딩테스트] 백준 자바 3번 시험 성적 (백준 9498번) (0) | 2022.10.03 |