초를 시:분:초로
정수 s(초)가 주어진다.
이 시간을 시:분:초 모양으로 출력하라.
분과 초는 항상 두 자리로 쓰고, 한 자리면 앞에 0을 붙인다(5 → 05).
시는 0을 채우지 않고 그대로 쓰며, 24 이상이어도 날짜로 넘기지 않는다.
- 입력
- 0 ≤ s ≤ 10,000,000
- 출력
- H:MM:SS 한 줄 (예: 1:02:05, 0:00:45, 27:46:40)
3725
1:02:05
45
0:00:45
정수 s(초)가 주어진다.
이 시간을 시:분:초 모양으로 출력하라.
분과 초는 항상 두 자리로 쓰고, 한 자리면 앞에 0을 붙인다(5 → 05).
시는 0을 채우지 않고 그대로 쓰며, 24 이상이어도 날짜로 넘기지 않는다.
3725
1:02:05
45
0:00:45
실행하면 이 줄들이 차례로 input()·표준 입력으로 들어가요(실행 중에 묻지 않아요).
$ 준비됐어요
코드를 입력해 풀려면 PC에서 열어 주세요. 모바일에서는 문제와 풀이를 볼 수 있어요.
시 = s / 3600, 분 = s % 3600 / 60, 초 = s % 60이에요.
분을 s / 60으로만 구하면 한 시간이 넘을 때 60 이상이 나와요.
정수 나눗셈: C·C++·Java·C#은 int끼리 /가 이미 몫, Python은 //, JS·TS는 Math.floor, 크레이콘은 수학.몫(s, 3600).
가장 흔한 함정은 0 채우기를 잊어 1:2:5가 되는 것이에요.
두 자리 채우기: C·Java %02d, Python f"{m:02d}", C# {m:D2}, JS·TS String(m).padStart(2, "0"), C++ std::setfill('0') << std::setw(2) — setfill은 계속 남지만 setw는 바로 다음 값 하나에만 걸려서 초 앞에 다시 써야 해요.
크레이콘에는 채우기 도구가 없어서 만약 (x < 10)이면 "0"을 앞에 붙이는 작은 함수를 만들어요.
s = int(input())h = s // 3600m = s % 3600 // 60sec = s % 60print(f"{h}:{m:02d}:{sec:02d}")const s = Number(require("fs").readFileSync(0, "utf8").trim());const h = Math.floor(s / 3600);const m = Math.floor((s % 3600) / 60);const sec = s % 60;const two = (x) => String(x).padStart(2, "0");console.log(`${h}:${two(m)}:${two(sec)}`);import { readFileSync } from "node:fs";const s: number = Number(readFileSync(0, "utf8").trim());const h: number = Math.floor(s / 3600);const m: number = Math.floor((s % 3600) / 60);const sec: number = s % 60;const two = (x: number): string => String(x).padStart(2, "0");console.log(`${h}:${two(m)}:${two(sec)}`);import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int s = sc.nextInt(); int h = s / 3600; int m = s % 3600 / 60; int sec = s % 60; System.out.printf("%d:%02d:%02d%n", h, m, sec); }}using System; class Program{ static void Main() { int s = int.Parse(Console.ReadLine().Trim()); int h = s / 3600; int m = s % 3600 / 60; int sec = s % 60; Console.WriteLine($"{h}:{m:D2}:{sec:D2}"); }}#include <iomanip>#include <iostream> int main() { int s; std::cin >> s; int h = s / 3600; int m = s % 3600 / 60; int sec = s % 60; std::cout << h << ':' << std::setfill('0') << std::setw(2) << m << ':' << std::setw(2) << sec << '\n';}#include <stdio.h> int main(void) { int s; scanf("%d", &s); int h = s / 3600; int m = s % 3600 / 60; int sec = s % 60; printf("%d:%02d:%02d\n", h, m, sec); return 0;}두자리(x){ 만약 (x < 10) { 돌려주기 "0" + x; } 돌려주기 "" + x;} s = 콘솔.줄읽기().수로변환();h = 수학.몫(s, 3600);m = 수학.몫(s % 3600, 60);sec = s % 60;콘솔.쓰기(h + ":" + 두자리(m) + ":" + 두자리(sec));