[algorithm] 10부제

Ho-eng·2023년 4월 6일
0

❓ 10부제


서울시는 6월 1일부터 교통 혼잡을 막기 위해서 자동차 10부제를 시행한다.
자동차 10부제는 자동차 번호의 일의 자리 숫자와 날짜의 일의 자리 숫자가 일치하면 해당 자동차의 운행을 금지하는 것이다.
예를 들어, 자동차 번호의 일의 자리 숫자가 7이면 7일, 17일, 27일에 운행하지 못한다.
또한, 자동차 번호의 일의 자리 숫자가 0이면 10일, 20일, 30일에 운행하지 못한다.
여러분들은 일일 경찰관이 되어 10부제를 위반하는 자동차의 대수를 세는 봉사활동을 하려고 한다.
날짜의 일의 자리 숫자가 주어지고 7대의 자동차 번호의 끝 두 자리 수가 주어졌을 때, 위반하는 자동차의 대수를 출력하는 프로그램을 작성하세요.

  • 입력설명

    첫 줄에는 날짜의 일의 자리 숫자가 주어지고 두 번째 줄에는 7대의 자동차 번호의 끝 두 자리 숫자가 주어진다.

  • 출력설명

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

  • 입력예제 1

    3
    25 23 11 47 53 17 33

  • 출력예제 1

    3

❗ 문제 풀이

내풀이

<html>
  <head>
    <meta charset="UTF-8" />
    <title>출력결과</title>
  </head>
  <body>
    <script>
      function solution(day, arr) {
        let answer = []
        for (let i = 0; i < arr.length; i++) {
          if (arr[i] % 10 === day) answer.push(arr[i])
        }

        return answer.length
      }

      arr = [25, 23, 11, 47, 53, 17, 33]
      console.log(solution(3, arr))
    </script>
  </body>
</html>
  1. answer라는 변수를 선언하고, 빈배열[ ]을 할당해준다.
  2. 반복문을 통해 반복을 돌면서 참인 조건을 찾고, 참일 때 빈 배열에 그 값들을 넣어준다.
  3. answer의 length를 출력한다

정답소스

<html>
    <head>
        <meta charset="UTF-8">
        <title>출력결과</title>
    </head>
    <body>
        <script>
            function solution(day, arr){
                let answer=0;
                for(let x of arr){
                    if(x%10==day) answer++;
                }
                
                return answer;
            }
            
            arr=[25, 23, 11, 47, 53, 17, 33];
            console.log(solution(3, arr));
        </script>
    </body>
</html>
  1. answer라는 변수를 선언하고, 초기값으로 0을 할당해준다.
  2. for of 을 통해 반복을 돌면서 참인 조건을 찾고, 참일 때 후위증가연산자(x++)를 통해 answer의 값들을 1씩 더해준다.
  3. answer를 출력한다

회고.

for of / for in / .... 등 JavaScript 문법들을 더 정리해봐야겠다.

profile
매일 '어제의 나와 오늘의 나는 무엇이 다를까?'를 고민하는 김호엥입니다.

0개의 댓글