본문 바로가기
연습장

Human Readable Time

by anothel 2021. 10. 28.

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