Java/알고리즘 공부
[백준 JAVA] 2884번: 알람시계 / 2525번: 오븐 시계 / 2480번: 주사위 세개
O'mil
2023. 1. 27. 09:16
728x90
#2884번: 알람 시계
문제
풀이
import java.util.Scanner;
public class Main_2884 {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int H = in.nextInt();
int M = in.nextInt();
if (M >= 45) {
M = M - 45;
System.out.printf("%d %d", H, M);
} else {
M = 60 - (45 - M);
H--;
if (H < 0) {
H = 23;
}
System.out.printf("%d %d", H, M);
}
in.close();
}
}
- 입력받은 'M'이 45거나, 45보다 크면 M-45를 하고 시간은 그대로 유지한다.
- 'M'이 45보다 작을 시 45에서 분을 뺀 후 60에서 한 번 더 빼준다.
- 시간은 -1을 해주고 만약 H가 -1이 나오면 23으로 설정해준다.
#2525번: 오븐 시계
문제
풀이
import java.util.Scanner;
public class Main_2525 {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int H = in.nextInt(); // 현재 시
int M = in.nextInt(); // 현재 분
int Cook = in.nextInt(); // 오븐 시간
int Finish = M + Cook;
if ( Finish % 60 == 0) {
H = H + (Finish / 60);
M = 0;
} else {
H = H + (Finish / 60);
M = Finish % 60;
}
if (H > 23)
H = 0;
in.close();
System.out.printf("%d %d", H, M);
}
}
- 시계를 생각하고 풀어 23이 넘어가면 모두 0으로 바꿔 버려 오류가 났다.
if (H > 23)
H = H - 24;
- 시간이 23시가 넘어가는 조건문을 수정하여 해결하였다.
- 23보다 크면 24를 빼줘 다음 날로 넘어가도록 수정하였다.
#2480번: 주사위 세개
문제
풀이
import java.util.Scanner;
public class Main_2480 {
public static void main(String[] arts) {
Scanner in = new Scanner(System.in);
int a1 = in.nextInt();
int a2 = in.nextInt();
int a3 = in.nextInt();
int answer = 0;
int max = 0;
if ( a1 == a2 && a1 == a3) {
answer = 10000 + a1 * 1000;
} else if (a1 == a2 || a2 == a3 || a1 == a3) {
if ( a1 == a2 || a1 == a3) {
answer = 1000 + a1 * 100;
} else if (a2 == a3) {
answer = 1000 + a2 * 100;
}
} else {
if ( a1 > a2) {
max = a1;
} else {
max = a2;
}
if ( max < a3) {
max = a3;
}
answer = max * 100;
}
in.close();
System.out.print(answer);
}
}
- 먼저 3 숫자가 모두 같을 경우 AND(&&)를 이용해 조건문을 만들어줬다.
- 2개가 같을 경우는 OR( | | )를 이용해 나타내줬고 구문 안에 if문을 하나 더 써 값별로 앤써 값을 다르게 적어줬다.
- 3개가 다 다를 경우 max 값을 구해야 하므로 if 문을 2번 사용해 max값을 구해줬다.
728x90