Write a function, which takes a non-negative integer (seconds) as input and returns the time in a human-readable format (HH:MM:SS)
- HH = hours, padded to 2 digits, range: 00 - 99
- MM = minutes, padded to 2 digits, range: 00 - 59
- SS = seconds, padded to 2 digits, range: 00 - 59
The maximum time never exceeds 359999 (99:59:59)
You can find some examples in the test fixtures.
Solution
function addZero(x) {
return x < 10 ? '0' + `${x}` : `${x}`;
}
function humanReadable (seconds) {
let HH = addZero(parseInt(seconds / 3600));
let MM = addZero(parseInt(seconds % 3600 / 60));
let SS = addZero(parseInt(seconds % 60));
return HH + ':' + MM + ':' + SS;
}
gkucmierz의 코드
p=n=>`0${n}`.slice(-2),humanReadable=(s)=>(m=s/60|0,p(m/60|0)+':'+p(m%60)+':'+p(s%60))
후기
실수로 시도한 문제였는데 그래도 시작했으니 끝은 봐야겠다는 마음으로 마무리를 지었다. 그런데 자바스크립트 영역은 조금 달랐다. 문법? 당연히 달랐지만 그보다도 굇수들이 더 많은 것 같다. 아무래도 해당 언어가 조금 더 자유롭게 짜낼 수 있어서 그런 것 같다. 문제 내용은 간단했다. 정수를 입력받아 사람이 읽을 수 있는 시간 데이터로 출력하는 것이었다. 남의 코드를 보면 이렇게 간단한 문제를 가지고 정말 다양하게 풀었다. 그중 너무나도 생소하고 특이해 보이는 남의 코드를 가져와봤다. 대체 저런 문법은 어떻게 생각해 낼 수 있는 것일까? 다 좋은데 하나 단점을 끄집어내자면, 협업할 때 안 좋을 것 같다. 저 한 줄짜리 숏 코딩을 쉽게 이해할 수 있는 사람들 얼마나 될까? 많을까? 그러면 난 실망인데..
(url: https://www.codewars.com/kata/52685f7382004e774f0001f7)
728x90
'연습장' 카테고리의 다른 글
My smallest code interpreter (aka Brainf**k) (0) | 2021.11.04 |
---|---|
Can you get the loop? (0) | 2021.10.28 |
Product of consecutive Fib numbers (0) | 2021.10.28 |
Greed is Good (0) | 2021.10.27 |
Decode the Morse code (0) | 2021.10.27 |