[기본문제] 자동차 10부제

주어진 날짜와 자동차의 일의 자리 숫자를 보고 10부제를 위반하는 차량의 대수를 출력한다.


나의 풀이 방법

let date = 0;
let carNum = [12, 20, 54, 30, 87, 91, 30];

// 1.
function violationCar(date, carNum) {
  let answer = 0;


  carNum.forEach((num) => {
    if (String(num)[1] === date) { // 날짜와 자동차의 일의 자리 숫자 같은지
      answer++;
    }
  });

  return answer;
}

console.log(violationCar(date, carNum));

개선

function violationCar2(date, carNum) {
  let answer = 0;

  carNum.forEach((num) => {
    if (num % 10 === date) { // 날짜와 자동차의 일의 자리 숫자 같은지
      answer++;
    }
  });

  return answer;
}

console.log(violationCar2(date, carNum));

비교 연산자 중에서 % (나머지 연산자)를 활용하여 코드의 가독성을 더 높였다.


답안

function solution(day, arr) {
  let answer = 0;

  for(let x of arr) {
    if (x % 10 === day) answer++;
  }

  return answer;
}

console.log(solution(date, carNum));

좋은 웹페이지 즐겨찾기