TIL_210303

오늘 배운 것

  • 코플릿 : 조건문
  • 코플릿 : 문자열

오늘은 무엇이 어려웠는가

makeLastSeenMsg

문제

사용자의 이름과 미접속 시간(분)을 입력받아 조건별로 다른 메세지를 리턴해야 합니다.

입력

인자 1 : name (string 타입의 이름)
인자 2 : period (number타입의 미접속 시간(분 단위))

출력

  • string타입을 리턴해야 합니다.
  • 미접속 시간이 1시간보다 적을 경우, 분 단위로 표기합니다.
  • 미접속 시간이 1시간 보다 크고 24시간보다 적을 경우, 시간 단위로 내림처리하여 표기합니다.
  • 미접속 시간이 24시간보다 클 경우, 일 단위로 내림처리하여 표기합니다.

입출력 예시

let output = makeLastSeenMsg('mike', 40);
console.log(output); // --> 'mike: 40분 전에 접속함'

output = makeLastSeenMsg('mike', 121);
console.log(output); // --> 'mike: 2시간 전에 접속함'

output = makeLastSeenMsg('mike', 2887);
console.log(output); // --> 'mike: 2일 전에 접속함'

my code

let minute = 60
let day = 24 * 60
let nohour = Math.floor(period / 60)
let noday = Math.floor(period / day)

if (period < minute) {
  return `${name}: ${period}분 전에 접속함`
} else if (period >= minute && period < day) {
  return `${name}: ${nohour}시간 전에 접속함`
} else if (period > day) {
  return `${name}: ${noday}일 전에 접속함`
}

reference code

  const day = 60 * 24;
  const hour = 60;
  if (period >= day) {
    return `${name}: ${Math.floor(period / day)}일 전에 접속함`;
  } else if (period >= hour) {
    return `${name}: ${Math.floor(period / hour)}시간 전에 접속함`;
  } else {
    return `${name}: ${period}분 전에 접속함`;
  }

차이점

큰 차이는 없었지만 Math.floor()을 사용하는 위치나 변수의 차이점이 다소 있었다.
물론 조건문 또한 완전히 정 반대로 작성하기도 했다.
하지만 큰 차이점을 보이지 않는 선에서 이정도로 만족해도 될 것 같다는 생각은 들게 되었다.
이제 코드 작성이 익숙해진다면 점차 압축하는 연습도 해야 할 것 같다

좋은 웹페이지 즐겨찾기