문제
기간을 시간, 분, 초 단위로 나누세요. 단위는 각각 h, m, s로 표기하며, 이 순서대로 한 칸씩 띄워서 작성합니다. 값이 0인 단위는 생략하되, 초가 0일 때는 반드시 0s로 표기합니다.
format_duration(seconds)를 구현하세요.
입력
seconds: 전체 기간(초 단위).
출력
형식화된 기간 문자열을 반환하세요. 예시: 2h 2m 5s.
제약 조건
0 ≤ seconds ≤ 1,000,000,000. 시간(h)은 23을 초과할 수 있습니다. 이는 시각이 아니라 기간입니다.
예시
예시 1
입력:
seconds = 7325
예상 출력:
expected = "2h 2m 5s"
입력:
long long seconds = 7325;
예상 출력:
std::string expected = "2h 2m 5s";
입력:
long seconds = 7325;
예상 출력:
string expected = "2h 2m 5s";
설명
7325 = 2 × 3600 + 2 × 60 + 5.
예시 2
입력:
seconds = 120
예상 출력:
expected = "2m"
입력:
long long seconds = 120;
예상 출력:
std::string expected = "2m";
입력:
long seconds = 120;
예상 출력:
string expected = "2m";
설명
120초는 정확히 2분입니다. 0인 시간과 초 단위는 생략합니다.
접근 방법
먼저 스스로 풀어 본 뒤 힌트를 하나씩 열어 보세요.
힌트 1
전체 초를 큰 단위부터 나누고, 0이 아닌 부분만 형식화하세요.
힌트 2
시간, 분, 초 순서로 유지하고, 포함된 단위 사이에는 공백을 넣으세요.
힌트 3
더 큰 단위가 모두 0이어도, duration이 0이면 출력은 정확히 0s여야 합니다.
예상 복잡도
시간 O(1), 추가 공간 O(1)
참고 자료
이 문제는 CodeUtility에 맞게 수정되었습니다. 위의 설명과 제한 조건을 따르세요.