일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- 해시
- 포맷 지정자
- HashMap
- 깃허브
- 가격이 제일 비싼 식품의 정보 출력하기
- Java
- 안드로이드 스튜디오
- MAC OS
- 27866
- JDK
- Iterator
- OAuth 인증
- 코딩테스트
- sort정렬
- 노선별 평균 역 사이 거리 조회하기
- mysql
- 프로그래머스
- Eclipse
- 맥북
- homebrew
- SQL코딩테스트
- Android Studio
- 자바
- M1
- 백준
- 문자열 숫자 변환
- 프로그램서
- 알고리즘
- github
- 핸드폰 가리기
Archives
- Today
- Total
개발일지
[백준 JAVA] 2884번: 알람시계 / 2525번: 오븐 시계 / 2480번: 주사위 세개 본문
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
'Java > 알고리즘 공부' 카테고리의 다른 글
[백준 JAVA] 15552번: A + B / #11021번: A + B - 7 /#11022번: A + B - 8 (0) | 2023.01.29 |
---|---|
[백준 JAVA] 10950번: A + B - 3 / 8393번: 합 / 25304번: 영수증 (0) | 2023.01.27 |
[백준 JAVA] 2588번: 곱셈 (3) | 2022.12.20 |
[백준 JAVA] 3003번: 킹, 퀸, 룩, 비숍, 나이트, 폰 (1) | 2022.12.19 |
[백준 JAVA] 1000번: A+B / 1001번: A-B / 10998번:AxB / 1008번: A/B (1) | 2022.12.18 |
Comments