https://www.acmicpc.net/problem/2884
2884번: 알람 시계
상근이는 매일 아침 알람을 듣고 일어난다. 알람을 듣고 바로 일어나면 다행이겠지만, 항상 조금만 더 자려는 마음 때문에 매일 학교를 지각하고 있다. 상근이는 모든 방법을 동원해보았지만,
www.acmicpc.net
문제
import java.util.Scanner;
public class Main2884 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int hour = sc.nextInt();
int min = sc.nextInt();
int hourDiff = hour-1;
int minDiff = min-45;
if (minDiff < 0) {
if (hourDiff < 0) {
System.out.println((hourDiff+24) + " " + (60+minDiff));
} else {
System.out.println((hour-1) + " " + (60+minDiff));
}
} else {
System.out.println(hour + " " + minDiff);
}
sc.close();
}
}
정답은 맞췄다.
[백준] 2884번 : 알람 시계 - JAVA [자바]
https://www.acmicpc.net/problem/2884 2884번: 알람 시계 문제 상근이는 매일 아침 알람을 듣고 일어난다. 알람을 듣고 바로 일어나면 다행이겠지만, 항상 조금만 더 자려는 마음 때문에 매일 학교를 지각하
st-lab.tistory.com
이사람의 코드를 보자
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));
}
}
}
가장 큰 차이는 변수 개수의 차이다. 내가 작성한 코드는 굳이 없어도 되는 변수를 만들면서 메모리를 낭비했다. 코드를 작성 할 때 내가 선언한 변수만으로 해결 할 수 있는지에 대해 끊임없이 고민해 볼 필요가 있다. 단순한 문제지만 기초부터 내실히 다져나가야 이후에 만나게될 많은 문제들에서도 효율적인 코드를 작성할 수 있을 것이다.
'백준' 카테고리의 다른 글
백준 10950번 220914 (0) | 2022.09.14 |
---|---|
백준 2480번 220906 (0) | 2022.09.06 |
백준 14681번 220905 (0) | 2022.09.05 |
백준 2753번 220905 (0) | 2022.09.05 |
백준 9498번 220905 (0) | 2022.09.05 |