[JS]백준_3052번: 나머지
백준 온라인 저지 3052번
https://www.acmicpc.net/problem/3052
readline 모듈
💡 문제
수 10개를 입력받은 뒤, 이를 42로 나눈 나머지를 구한다. 그 다음 서로 다른 값이 몇 개 있는지 출력하는 프로그램을 작성하시오.
💡 풀이
.forEach()
메소드로 입력받은 배열 내부 요소를 순환하며, 42로 나눈 나머지 배열을 만든다.
.set
메소드를 통해 중복 값 제거를 한 후, 배열의 길이를 출력한다.
💡 코드
const readline = require("readline");
const rl = readline.createInterface({
input : process.stdin,
output : process.stdout
});
let input = [];
rl.on("line", function(line){
input.push(Number(line));
}).on("close", function(){
let remainder = []
input.forEach((el) => {
remainder.push(el % 42)
})
remainder = Array.from(new Set(remainder))
console.log(remainder.length)
process.exit();
})
💡 학습
.forEach()
Array 내잘 객체의 forEach
메소드는 배열 내부 요소를 순환하며, 각 요소에 대해 callback
함수를 실행합니다.
배열.forEach(callback 함수)
const arr = [
{id: 0, name: '옥돌'},
{id: 0, name: '돌돌'},
{id: 0, name: '은빈'}
]
arr.forEach((el) => {
console.log(el.name)
})
//옥돌
//돌돌
//은빈
Array.from()
Array.from()
메서드는 유사 배열 객체(array-like object)나 반복 가능한 객체(iterable object)를 얕게 복사해 새로운Array
객체를 만듭니다.
console.log(Array.from('foo'));
// expected output: Array ["f", "o", "o"]
console.log(Array.from([1, 2, 3], x => x + x));
// expected output: Array [2, 4, 6]
set
- Set 객체는 자료형에 관계 없이 원시 값과 객체 참조 모두 유일한 값을 저장할 수 있습니다.
- Set은 ES6에서 등장한 새로운 data object이다.
set
은 유니크한 값만 저장할 수 있도록 하기 때문에array
에 넣게 되면, 중복되는 값이 사라진다. 상당히 유용하기 때문에 반드시 기억해둘 필요가 있다. (이 메소드 하나로 코드를 몇 줄이나 줄일 수 있다.)
const array = ['0', 1, 2, '0', '0', 3]
Array.from(new Set(array));
// ['0', 1, 2, 3]
💡 참고
Author And Source
이 문제에 관하여([JS]백준_3052번: 나머지), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@okdol0505/JS백준3052번-나머지저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)