[BAEKJOON] 3052번 나머지

JU CHEOLJIN·2021년 7월 22일
0

Algorithm

목록 보기
8/16
post-thumbnail

3052번 나머지

문제 보러가기

문제

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

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

입력

첫째 줄부터 열번째 줄 까지 숫자가 한 줄에 하나씩 주어진다. 이 숫자는 1,000보다 작거나 같고, 음이 아닌 정수이다.

출력

첫째 줄에, 42로 나누었을 때, 서로 다른 나머지가 몇 개 있는지 출력한다.

풀이

const fs = require("fs");
const input = fs.readFileSync("./dev/stdin").toString().split('\n');

const remainder = inputs.map((value) => value % 42); // 나머지 배열 생성

const reduceDuplicates = new Set(remainder); // 중복 제거하기 : 중복 제거된 오브젝트 반환
console.log(reduceDuplicates.size); // 중복 제거된 갯수 출력

배열의 중복을 제거하는 방법을 알고 있다면 간단한 문제이다. indexOf 등을 사용하는 방법도 있지만 중복을 제거한 후에 배열을 사용할 필요는 없는 간단한 문제였기 때문에 Set 객체를 이용했다.

new 키워드를 통해서 각 요소를 하나씩만 가지고 있는 객체를 생성한 뒤에 사이즈를 출력해서 문제를 해결할 수 있었다.

let remainderArray = [...reduceDuplicates];

만약 중복된 값을 제거한 배열을 이용하고 싶다면 위의 코드를 사용하면 된다.

profile
사회에 도움이 되는 것은 꿈, 바로 옆의 도움이 되는 것은 평생 목표인 개발자.

0개의 댓글