century.js (8kyu 38)

Codewars 알고리즘 풀이


Description

  • Given a year, return the century it is in.
    • year가 주어지면 그 세기(century)를 반환한다.
  • The first century spans from the year 1 up to and including the year 100.
    • 1세기(1st century)는 1년부터 100년이다.
  • The second from the year 101 up to and including the year 20, etc.
    • 2세기(2nd century)는 101년부터 200년이다.



Solution 01

function century(year) {
  let result = 0;
  
  for (let i = 0; i < year; i++) {
    if (i % 100 === 0) {
      result++;
    }
  }
  
  return result;
}

century(0);     // 0
century(1);     // 1
century(99);    // 1
century(100);   // 1
century(101);   // 2
century(199);   // 2
century(200);   // 2
century(201);   // 3
century(2000);  // 20
century(2001);  // 21
century(2020);  // 21


Solution 02

function century(year) {
  if (year % 100 === 0) {
    return parseInt(year / 100);
  } else {
    return parseInt(year / 100) + 1;
  }
}

century(0);     // 0
century(1);     // 1
century(99);    // 1
century(100);   // 1
century(101);   // 2
century(199);   // 2
century(200);   // 2
century(201);   // 3
century(2000);  // 20
century(2001);  // 21
century(2020);  // 21


Solution 03

function century(year) {
  if (year <= 100) return 1;
  
  let cen = parseInt(year / 100);
  
  return year % 100 === 0 ? cen : cen + 1;
}

century(0);     // 0
century(1);     // 1
century(99);    // 1
century(100);   // 1
century(101);   // 2
century(199);   // 2
century(200);   // 2
century(201);   // 3
century(2000);  // 20
century(2001);  // 21
century(2020);  // 21


Solution 04

function century(year) {
  return Math.ceil(year / 100);
}

century(0);     // 0
century(1);     // 1
century(99);    // 1
century(100);   // 1
century(101);   // 2
century(199);   // 2
century(200);   // 2
century(201);   // 3
century(2000);  // 20
century(2001);  // 21
century(2020);  // 21