24시간 시계 연산
- N 초를 h시 m분 s초의 형태로 나타내시오.
문제 분석
- 24시간 = 24 * 60 * 60 = 86400 초
- 86400초가 넘으면? 그 나머지로 연산
- 1시간 = 60분
- 1분 = 60초
- 1시간 = 3600초
코드 작성
package algo;
public class Clock02 {
public static void main(String[] args) {
// 1. Sampling : 85123초를 a분 b초의 형태로 나타내시오.
int time = 85123;
// 2. Hard Coding : 특징 찾기 1 - 초를 3600으로 나눈 몫은 시간으로 표기
// 2. Hard Coding : 특징 찾기 2 - 초를 3600으로 나눈 나머지를 60으로 나눈 몫은 분으로 표기
// 2. Hard Coding : 특징 찾기 3 - 초를 60으로 나눈 나머지는 초로 표기 (60^2 = 3600이므로 time % 60 = time % 3600 % 60)
// 3. Moduling
if (time > 86400) time = time % 86400; // 3-1. 24시간이 지나가는 초일 경우는 24시간을 넘겨서 다시 계산
int hour = time / 3600;
int minute = time % 3600 / 60;
int second = time % 60;
System.out.println(time + "초 = " + hour + "시 " + minute + "분 " + second + "초 입니다.");
}
}
Hard Coding에서 알아낸 특징
- 초를 3600으로 나눈 몫은 시간으로 표기
- 초를 3600으로 나눈 나머지를 60으로 나눈 몫은 분으로 표기
- 초를 60으로 나눈 나머지는 초로 표기
- s % 3600 % 60 = s % 60 (3600 = 60 ^ 2)
- 24시간이 지나가는 초 (s > 86400)일 경우는 s를 86400으로 나눈 나머지로 다시 계산
결과

- 초가 86400을 넘어갈 경우 (86523초) = 123초로 계산

Share article