JAVA - 백준 [BAEK JOON]/조건문
[백준] 2884번 : 알람시계 - JAVA (자바)
_ys2
2024. 4. 20. 20:48
728x90
반응형
https://www.acmicpc.net/problem/2884
2884번: 알람 시계
상근이는 매일 아침 알람을 듣고 일어난다. 알람을 듣고 바로 일어나면 다행이겠지만, 항상 조금만 더 자려는 마음 때문에 매일 학교를 지각하고 있다. 상근이는 모든 방법을 동원해보았지만,
www.acmicpc.net
문제
문제 풀이
1. 먼저, 사용자에게 시간과 분을 입력받는다.
2. 입력된 분이 45분 미만인지 확인한다 만약 그렇다면, 시간을 하나 줄이고, 분을 45분에서 입력된 분을 뺀 값으로 설정한다. 그러나 시간이 음수가 되면 자정을 넘어가므로, 시간을 23으로 설정한다.
3. 만약 입력된 분이 45분 이상이라면, 시간은 변경하지 않고 분에서 45를 뺀 값을 출력한다.
4. 마지막으로, 입력된 시간과 분에 따라 계산된 알람 시간을 출력한다.
5. 프로그램이 끝나면 사용된 시스템 자원을 해제한다.
문제대로 해석한 내 생각을 코드로 작성해 보자!
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int hh = sc.nextInt();
int mm = sc.nextInt();
if (mm < 45) {
hh--;
mm = 60 - (45 - mm);
if (hh < 0) {
hh = 23;
}
System.out.println(hh + " " + mm);
} else {
System.out.println(hh + " " + (mm - 45));
}
sc.close();
}
}
코드 풀이
Scanner sc = new Scanner(System.in); // 사용자를 입력을 받기 위해 Scanner 객체를 생성
사용자로부터 입력을 받는다.
int hh = sc.nextInt(); // 시간
int mm = sc.nextInt(); // 분
사용자로부터 시간과 분을 입력을 받을 변수 hh와 mm에 저장한다.
if (mm < 45) { // 만약 입력된 분이 45 미만이라면
hh--; // 시간을 1시간 줄이고
mm = 60 - (45 - mm); // 분을 45분에서 입력된 분을 뺀 값으로 설정
if (hh < 0) { // 만약 시간이 음수가 된다면, 23으로 설정 (자정을 넘어가는 경우)
hh = 23;
}
System.out.println(hh + " " + mm); // 결과를 출력 (시간과 분을 공백으로 구분하여 출력)
} else {
System.out.println(hh + " " + (mm - 45)); // 입력된 분이 45 이상인 경우, 시간은 변경 없이 분에서 45를 뺀 값을 출력
}
분이 45분 미만인 경우에는 시간을 1시간 줄이고, 분을 45분에서 입력된 분을 뺀 값으로 설정한다.
만약 시간이 음수가 되면 자정을 넘어가는 경우이므로 23시로 설정한다.
분이 45 이상인 경우에는 시간은 변경 없이 분에서 45를 뺀 값을 출력한다.
sc.close(); // 시스템 자원 누수를 방지하기 위해 Scanner 개체를 닫는다.
사용이 끝난 Scanner 객체를 닫아서 시스템 자원 누수를 방지한다.
피드백 & 정리
요즘 문제를 푸는데만 초점을 둬서 그런지 할 때는 어떤 코드든 생각이 나면서 푸는 거 같은데 왠지 모르게 아무 생각도 안 난다.. 그래서 포스팅을 하면서 다시 되새겨보자라는 생각으로 열심히 작성하고 있다! 더 많이 힘내보자!

깃 허브
Algorithm_Judge/boj/java/step/b_02_conditional_statement/p_2884.java at main · CHUNYOUNGSANG/Algorithm_Judge
Contribute to CHUNYOUNGSANG/Algorithm_Judge development by creating an account on GitHub.
github.com
반응형