현재
[Java][BaekJoob][2884] 알람 시계 본문
<문제 설명>
45분 빨리 울리는 알람시계를 만드는 코드
<코드>
import java.util.*;
public class BaekJoon_Java_2884{
public static void main (String []args){
Scanner scn = new Scanner(System.in);
int H = scn.nextInt();
int M = scn.nextInt();
int changedM = 0;
int changedH = 0;
if ( H >=1 && H <= 23){
if ( M >= 45){
changedH = H;
changedM = M - 45;
}else if ( M < 45){
changedH = H-1;
changedM = (M - 45) + 60;
}
}else if(H == 0){
if ( M >= 45){
changedH = H;
changedM = M - 45;
}else if ( M < 45){
changedH = 23;
changedM = (M - 45) + 60;
}
}
System.out.println(changedH+" "+changedM);
}
}
<문제점>
1. 0시 45분 미만일 때는 23시가 되는 조건
2. 1~23시 사이에 45분 미만일때는 시간 -1 을 해주는 조건
3. 44분미만일때 45를 빼주면 음수가 나오기 때문에 절대값을 취해주는 조건
<해결방법>
나는 시간이 0시이고 45분 미만일때는 아예 23시로 만들어버렸다 ( 별로 좋은 코드는 아닌듯 )
그리고 44분에서 45분을 빼면 음수값이 나오기 때문에 절대값을 취해야한다.
하지만 수학적으로는 기호로 단순히 절대 값을 취할 수 있지만 절대값 API를 사용하지 않았다.
분이 60분마다 순환된다는 규칙이 있어서 변경된 분값에 60을 더해서 양수로 만들어 주었다.
어려운 문제는 아니지만 개인적으로 조건이 까다로워서 분에 절대값을 취하는 방법을 몰라서 고민이 많았었다.
<문제 출처>
https://www.acmicpc.net/problem/2884
2884번: 알람 시계
상근이는 매일 아침 알람을 듣고 일어난다. 알람을 듣고 바로 일어나면 다행이겠지만, 항상 조금만 더 자려는 마음 때문에 매일 학교를 지각하고 있다. 상근이는 모든 방법을 동원해보았지만,
www.acmicpc.net
'알고리즘 > 백준' 카테고리의 다른 글
| [Java][BaekJoon][2480]주사위 세개 (0) | 2023.09.01 |
|---|---|
| [Java][BaekJoon][2525]오븐 시계 (0) | 2023.09.01 |
| [Java][BaekJoon][2753]채점 현황 (0) | 2023.09.01 |
| [Java][BaekJoon][14681]사분면 고르기 (0) | 2023.09.01 |
| [Java][BaekJoon][9498]시험 성적 (0) | 2023.09.01 |