[알고리즘] 12. 24시간제 시계 연산

문정준's avatar
Feb 10, 2025
[알고리즘] 12. 24시간제 시계 연산
 

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에서 알아낸 특징
  1. 초를 3600으로 나눈 몫은 시간으로 표기
  1. 초를 3600으로 나눈 나머지를 60으로 나눈 몫은 분으로 표기
  1. 초를 60으로 나눈 나머지는 초로 표기
      • s % 3600 % 60 = s % 60 (3600 = 60 ^ 2)
  1. 24시간이 지나가는 초 (s > 86400)일 경우s를 86400으로 나눈 나머지로 다시 계산
 

결과

notion image
  • 초가 86400을 넘어갈 경우 (86523초) = 123초로 계산
notion image
 
Share article

sxias