티스토리 뷰
Algorithm/[Java+Python+JavaScript]BackJoon
[JavaScript]3052번, 나머지, 배열에서 중복 제거, Set
Vagabund.Gni 2023. 7. 4. 11:14728x90
반응형
목차
문제
두 자연수 A와 B가 있을 때, A%B는 A를 B로 나눈 나머지이다.
예를 들어, 7, 14, 27, 38을 3으로 나눈 나머지는 1, 2, 0, 2이다.
수 10개를 입력받은 뒤, 이를 42로 나눈 나머지를 구한다.
그다음 서로 다른 값이 몇 개 있는지 출력하는 프로그램을 작성하시오.
입력
첫째 줄부터 열 번째 줄 까지 숫자가 한 줄에 하나씩 주어진다.
이 숫자는 1,000보다 작거나 같고, 음이 아닌 정수이다.
출력
첫째 줄에, 42로 나누었을 때, 서로 다른 나머지가 몇 개 있는지 출력한다.
풀이
처음에는 자바의 스트림에서 그렇듯 중복 제거 연산자가 있을 거라고 생각했다.
하지만 그렇지 않았고, 자바스크립트의 중복 제거는 Set 자료구조를 이용한다는 것을 배웠다.
문제 풀이 알고리즘은 다음과 같다.
- 주어진 입력을 42로 나눈 나머지를 배열 input에 넣어준다
- input을 '...' 연산자와 new Set(input)을 이용해 갱신해 준다. 이 과정에서 중복이 제거된다.
- 참고로 지난 글에도 나왔지만 '...'연산자는 스프레드 연산자라 불리며, ES6에서 도입된,
배열이나 객체 등의 iterable 요소를 개별 요소로 확장하는 역할을 한다. 여기서는 Set 객체를 생성 시
객체의 인수로 input의 모든 값을 전달하는 데 사용된다.
- 참고로 지난 글에도 나왔지만 '...'연산자는 스프레드 연산자라 불리며, ES6에서 도입된,
- 이어서 갱신된 배열의 길이를 input.length로 구해 출력한다.
JavaScript
const rl = require('readline').createInterface({
input: process.stdin,
output: process.stdout,
});
let input = [];
rl.on('line', (line) => {
input.push(Number(line) % 42);
}).on('close', () => {
input = [...new Set(input)];
console.log(input.length);
rl.close();
});
반응형
'Algorithm > [Java+Python+JavaScript]BackJoon' 카테고리의 다른 글
[Java+Python]11049번, 행렬 곱셈 순서 (0) | 2023.07.10 |
---|---|
[JavaScript]2675번, 문자열 반복, 오버헤드 (0) | 2023.07.08 |
[Java+Python]11286번, 절댓값 힙, Comparator (0) | 2023.07.04 |
[JavaScript]5597번, 과제 안 내신 분..?, 배열 다루기 (0) | 2023.07.03 |
[Java+Python]12015번, 가장 긴 증가하는 부분 수열 2 (1) | 2023.07.02 |
[JavaScript]10813번, 공 바꾸기, 배열 초기화, 요소 위치 바꾸기 (0) | 2023.07.01 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 여행
- Backjoon
- java
- 면접 준비
- 세모
- BOJ
- 세계일주
- 기술면접
- Python
- 알고리즘
- 동적계획법
- 스트림
- 지지
- 세계여행
- 칼이사
- 스프링
- 백준
- 자바
- 중남미
- 유럽여행
- Algorithm
- 맛집
- 유럽
- a6000
- 남미
- RX100M5
- 파이썬
- 리스트
- 야경
- spring
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
글 보관함