일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 스프링
- java
- 자바
- 제이쿼리
- 세션
- 스프링 구글차트로 기간별 현황 조회하기
- 스프링 구글차트
- 스프링 제어역전
- 스프링과 스프링부트 차이점
- 자바왕기초
- 오라클클라우드에 젠킨스 설치하기
- 스프링 에러
- 오라클
- 오라클주별데이터
- 오라클통계
- 오라클월별데이터
- 오라클일별데이터
- CSS
- 자바왕초보
- 스프링 부트가 해결하려고 했던 문제
- 자바 왕기초
- jsp
- 자바 기초
- maven
- HTML
- 썸머노트
- 자바기초
- 스프링 Ioc
- 스프링 Ioc Container
- Spring Boot가 해결하려고 했던 문제
- Today
- Total
Just Do it
[백준/자바] 2884번: 알람 시계 본문
1. 문제
https://www.acmicpc.net/problem/2884
2884번: 알람 시계
상근이는 매일 아침 알람을 듣고 일어난다. 알람을 듣고 바로 일어나면 다행이겠지만, 항상 조금만 더 자려는 마음 때문에 매일 학교를 지각하고 있다. 상근이는 모든 방법을 동원해보았지만,
www.acmicpc.net
2. 내 코드
import java.io.*;
public class Ex2884 {
public static void main(String[] args) throws NumberFormatException, IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String[] time = br.readLine().split(" ");
int h = Integer.parseInt(time[0]);
int m = Integer.parseInt(time[1]);
br.close();
if (m >= 45) {
int newh = h;
int newm = m-45;
System.out.println(newh + " "+ newm);
} else if (m < 45) {
int newh = h-1;
int newm = m+15;
if (newh == -1) {
newh = -1+24;
}
System.out.println(newh + " "+ newm);
}
}
}
3. 다시 한번 체크할 부분
1) 분에 해당하는 변수 int m 에서 m이 45보다 작을 경우,
1시간에 60분이니까 (45-입력값)의 차이만큼 60에서 빼주면 된다. 즉 , 60 - (45-입력값) 이 된다. 나는 이걸 m+15로 쓴 것일 뿐.
2) 분에 해당하는 변수 int m 에서 m이 45보다 작을 경우,
int newh = h-1; 대신에 h--; 라고 쓸 수 있다. 그리고 이 문제는 굳이 조건문 내에서 새 지역변수 int newh, int newm을 적을 필요 없었다. 수정한 코드는 아래와 같다. 하지만 수행 시간에는 차이가 없어 성능은 비슷한 것 같다.
수정한 코드:
import java.io.*;
public class Ex2884 {
public static void main(String[] args) throws NumberFormatException, IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String[] time = br.readLine().split(" ");
int h = Integer.parseInt(time[0]);
int m = Integer.parseInt(time[1]);
br.close();
if (m < 45) {
h--; // 시(hour) 1 감소
m = m+15;
if (h==-1) {
h = 23;
}
System.out.println(h + " " + m);
} else {
System.out.println(h + " "+ (m-45));
}
}
}
'신입 개발자가 되기 위해 공부했던 독학 자료들 > Java 연습문제 (백준)' 카테고리의 다른 글
[백준/자바] 15552번: 빠른 A+B (BufferedWriter 익히기) (0) | 2022.01.27 |
---|---|
[백준/자바] 10950번: A+B - 3 (0) | 2022.01.27 |
자바 BufferedReader 사용 시 NumberFormat RuntimeError 발생하는 이유와 해결 방법 (0) | 2022.01.27 |
Java Scanner 는 사용 후 꼭 닫아야 하는가? (0) | 2022.01.26 |
[백준/자바] 10172번: 개 (0) | 2022.01.26 |