roundToNext5.js (7kyu 41)

Codewars 알고리즘 풀이


Problem

  • Given an integer as input, can you round it to the next 5?
    • 다음(next) 5로 반올림해서 반환한다.


For example:

0 -> 0

2 -> 5

3 -> 5

12 -> 15

21 -> 25

30 -> 30

-5 -> -5


Solution 01

function roundToNext5(n) {
  return Math.ceil(n / 5) * 5;
}

roundToNext5(0);    // 0
roundToNext5(2);    // 5
roundToNext5(3);    // 5
roundToNext5(12);   // 15
roundToNext5(-5);   // -5

Math.ceil(): 가장 가까운 정수로 반올림하고, 결과를 반환한다.


Solution 02

function roundToNext5(n) {
  while (n % 5 !== 0) {
    n++;
  }
  return n;
}

roundToNext5(0);    // 0
roundToNext5(2);    // 5
roundToNext5(3);    // 5
roundToNext5(12);   // 15
roundToNext5(-5);   // -5


Solution 03

function roundToNext5(n) {
  if (n % 5 === 0) {
    return n;
  }
  return roundToNext5(n + 1);
}

roundToNext5(0);    // 0
roundToNext5(2);    // 5
roundToNext5(3);    // 5
roundToNext5(12);   // 15
roundToNext5(-5);   // -5