티스토리 뷰
반응형
깃허브 : https://github.com/miiingo/codility
Task description
원본 사이트 : app.codility.com/programmers/lessons/6-sorting/distinct/
- N 개의 정수로 구성된 배열 A
- 배열 A에 포함된 고유한 값의 개수를 return
- 가장 효율적인 알고리즘 작성
- N은 [0..100,000] 범위 내의 정수
- 배열 A의 각 요소는 [-1,000,000..1,000,000] 범위의 정수
Solution
CASE 1: Set 객체를 사용한 배열 A 요소 체크 - 100%
// you can write to stdout for debugging purposes, e.g.
// console.log('this is a debug message');
function solution(A) {
// write your code in JavaScript (Node.js 8.9.4)
const N = A.length;
let values = new Set();
for(let i=0; i<N; i++){
values.add(A[i]);
}
return values.size;
}
- N : 배열 A의 길이
- values : 배열 A의 요소를 저장하는 Set 객체
- for문을 돌며 배열 A의 요소들을 values에 추가
- for문이 끝나면 values의 size를 return
CASE 1: Result
CASE 1: Analysis
The solution obtained perfect score.
이 솔루션은 완벽한 점수를 얻었습니다.
결론
javascript의 Set 객체는 중복을 제거하여 고유한 값만을 저장하기 때문에 배열 A의 요소들을 Set 객체에 저장한 뒤, Set 객체의 size를 return하면 간단하게 해결.
Set 객체를 이용하는 것이 효율성이 떨어지지 않을까 걱정했는데, 100점이 나오는걸 보면 Set 객체의 사용 자체는 성능에 크게 영향을 주지 않는 것 같음.
반응형
'알고리즘 > Codility' 카테고리의 다른 글
댓글
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 하이퍼레저 인디
- Hyperledger Fabric
- 빅데이터 강의
- 어서와 데이터는 처음이지
- Hyperledger Fabric v1.2
- DOCs
- Hyperledger Fabric v1.1
- Hyperledger Indy
- 블록체인
- ubuntu
- 알고리즘
- codility
- 빅데이터 기초
- 코딩테스트
- 빅데이터 교육
- 직딩잇템
- 하이퍼레저 페브릭
- docker
- ambrosus
- javascript
- Private Data
- 하이퍼레저 패브릭
- Blockchain
- 암브로셔스
- 빅데이터
- 코딜리티
- 기초 of 기초 데이터 개념
- 코테
- 블록 체인
- 문제풀이
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함