[백준/JS] 3052번 나머지

출처

3052번: 나머지
https://www.acmicpc.net/problem/3052


문제

두 자연수 A와 B가 있을 때, A%B는 A를 B로 나눈 나머지 이다. 예를 들어, 7, 14, 27, 38을 3으로 나눈 나머지는 1, 2, 0, 2이다.

수 10개를 입력받은 뒤, 이를 42로 나눈 나머지를 구한다. 그 다음 서로 다른 값이 몇 개 있는지 출력하는 프로그램을 작성하시오.


풀이

numbers 배열에 10개의 수를 입력 받아 저장한다. 배열의 각 요소를 42로 나누고 그 값이 newNums에 있는지 확인한다. 없는 경우에만 newNums에 저장되도록 한다. 그 후 newNums의 길이를 출력한다.


코드

let readline = require('readline');
let rl = readline.createInterface({
    input: process.stdin,
    output: process.stdout
});

let input = [];

rl.on('line', function(line) {
    input.push(line);
}).on('close', function() {
    let numbers = [];
    for(let i = 0; i < 10; i++) {
        numbers.push(Number(input[i]));
    }
    
    let newNums = [];
    
    numbers.forEach(x => {
        let num = x % 42;
        if(newNums.indexOf(num) === -1) {
            newNums.push(num);
        }
    });
    
    console.log(newNums.length);
    
    process.exit();
});

좋은 웹페이지 즐겨찾기