N Log

초를 시, 분, 초로 변환하기

문제

이 문제는 나머지 연산자(%)와 출력 서식 지정(%02d)을 물어보는 문제이다.

초(seconds)를 입력받아 HH:MM:SS 형식으로 변환하시오.

각 값은 최소 2자리로 출력해야 한다.
입력되는 초는 86400을 넘지 않는다고 가정한다.

예를 들어 3661초가 입력되면 01:01:01을 출력해야 한다.

해답

#include <stdio.h>

int main(void)
{
    int totalSeconds;
    scanf("%d", &totalSeconds);

    int hours = totalSeconds / 3600;
    int minutes = totalSeconds % 3600 / 60;
    int seconds = totalSeconds % 60;

    printf("%02d:%02d:%02d\n", hours, minutes, seconds);

    return 0;
}

이 문제는 나머지 연산자(%)와 출력 서식 지정(%02d)을 물어보는 문제이다.

1초가 3600개 모이면 1시간이므로, 3600개씩 몇 묶음인지 계산해 시간을 구한다.
몇 분인지는 totalSeconds에서 시간으로 사용하고 남은 초가 60개씩 몇 묶음인지 계산해 구한다.
1초가 60개 모이면 1분이므로, 60개씩 묶고 남은 나머지로 초를 구한다.