updateLight.js (8kyu 60)

Codewars 알고리즘 풀이


Problem

  • You need a function to handle each change from green, to yellow, to red, and then to green again.
    • green, yellow, red, 다시 green으로 변화를 처리한다.


Solution 01

function updateLight(current) {
  if (current === 'green') return 'yellow';
  if (current === 'yellow') return 'red';
  if (current === 'red') return 'green';
}

updateLight('green');   // yellow
updateLight('yellow');  // red
updateLight('red');     // green
updateLight('green');   // yellow


Solution 02

function updateLight(current) {
  switch (current) {
    case 'green': return 'yellow';
    case 'yellow': return 'red';
    case 'red': return 'green';
    default: return 'Error';
  }
}

updateLight('green');   // yellow
updateLight('yellow');  // red
updateLight('red');     // green
updateLight('green');   // yellow


Solution 03

function updateLight(current) {
  return current === 'green' ? 'yellow' : current === 'yellow' ? 'red' : 'green';
}

updateLight('green');   // yellow
updateLight('yellow');  // red
updateLight('red');     // green
updateLight('green');   // yellow