[백준] 3052. 나머지(feat. Javascript / node.js) 알고리즘

준리·2022년 6월 13일
0

자료구조알고리즘

목록 보기
35/38
post-thumbnail

1차원 배열

: 나머지 [3052]

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

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

예제 입력

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

1
2
3
4
5
6
7
8
9
10

예제 출력

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

10

//각 수를 42로 나눈 나머지는 1, 2, 3, 4, 5, 6, 7, 8, 9, 10이다.

제출


//https://www.acmicpc.net/problem/3052

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

const arr = input.map((item) => item % 42);

const set = new Set(arr);

const unique = [...set];
console.log(unique.length);


무엇을 해결해야 하는가?

set를 사용해보았다. 링크

Set 객체는 값 콜렉션으로, 삽입 순서대로 요소를 순회할 수 있습니다. 하나의 Set 내 값은 한 번만 나타날 수 있습니다. 즉, 어떤 값은 그 Set 콜렉션 내에서 유일합니다.

쉽게 얘기해서 중복값을 제거하고 담아낸다.

해당 값을 set메쏘드에 담고 .length로 출력하니까 안되서

Spread Operator
spread 연산자는 특정 객체 또는 배열의 값을 다른객체나 배열로 복제하거나 옮길때 사용합니다. React에서는 state의 특정부분만 변화시키거나, 최초의 상태를 유지하며 데이터를 추가하는 등의 경우에 사용됩니다.

const arr = [1, 2, 3];
const newArr = [...arr]; // [1, 2, 3]

를 사용하여 배열을 복제해 길이를 출력했다.

숏코딩

console.log(new Set(require('fs').readFileSync('/dev/stdin').toString().trim().split('\n').map(v => (+v) % 42)).size);

set으로 묶어서 .size로 출력할 수도 있다.

profile
트렌디 풀스택 개발자

0개의 댓글