title: "JavaScript Skills" excerpt: "Skills by JavaScript" category: JavaScript-Reference tags: [JavaScript, compare, sort, math] toc: true Skills by JavaScript 모든 부분집합 구하기(bit 연산) 모든 부분집합 구하기 bit & 연산 이용 const arr = [1, 2, 3, 4]; const getSet = (arr) => { const totalSet = []; // 결과 Set const totalCount = 1 { let left = 0; let right = array.length; while (left < right) { const mid = parseInt((le..
title: "C++ Skills" excerpt: "Skills by C++" category: Cpp-Reference tags: [ C++, , , iterator, sort, permutation, combination, dfs, bfs, brute-force, union-find, merge, set_union, set_intersection, set_difference, lower_bound, upper_bound, , ] toc: true Skills by C++ 모든 부분집합 by bit & bit & 연산으로 모든 부분집합 구하기 #include using namespace std; vector getSubsets(vector arr){ vector totalSet; // 결과 Set i..
title: "JavaScript Reference" excerpt: "JavaScript Reference" category: Language-Reference tags: [JavaScript, compare, sort, map, print, stack, queue, set, map, array] toc: true Skills by JavaScript 모든 부분집합 구하기(bit 연산) 모든 부분집합 구하기 bit & 연산 이용 const arr = [1, 2, 3, 4]; const getSet = (arr) => { const totalSet = []; // 결과 Set const totalCount = 1 { let left = 0; let right = array.length; while (le..
문제 링크 코딩테스트 연습 - H-Index H-Index는 과학자의 생산성과 영향력을 나타내는 지표입니다. 어느 과학자의 H-Index를 나타내는 값인 h를 구하려고 합니다. 위키백과1에 따르면, H-Index는 다음과 같이 구합니다. 어떤 과학자가 발표 programmers.co.kr 풀이 문제 이해하기 힘들면 위키백과 보기를 추천합니다.(제가 그럼...) 생각해보면, h-index를 한정 짓는 것은 논문을 편찬한 개수이다. 따라서 인용된 횟수랑 비교하면서 논문을 편찬한 개수를 줄여나가면서 h-index의 최대를 구할 수 있다. 따라서 코드를 요약하자면, citations을 오름차순으로 정렬하여 원소값과 비교하면서 순회한다.(인용된 횟수랑 비교하기 위해서) i 번째 원소(논문 인용횟수) 이상인 원소(..
문제 링크 코딩테스트 연습 - K번째수 [1, 5, 2, 6, 3, 7, 4] [[2, 5, 3], [4, 4, 1], [1, 7, 3]] [5, 6, 3] programmers.co.kr 풀이 간단한 문제였다. 요약하자면, vector v를 선언하고 공간을 reserve()로 예약한 후, 해당하는 범위를 v에 할당했다. 이후, sort()로 오름차순으로 정렬 후, 해당 index를 answer 컨테이너에 넣어주었다. 더보기 #include #include #include #include using namespace std; vector solution(vector array, vector commands) { vector answer; for(int i=0; i
문제 링크 코딩테스트 연습 - 가장 큰 수 0 또는 양의 정수가 주어졌을 때, 정수를 이어 붙여 만들 수 있는 가장 큰 수를 알아내 주세요. 예를 들어, 주어진 정수가 [6, 10, 2]라면 [6102, 6210, 1062, 1026, 2610, 2106]를 만들 수 있고, 이중 가장 큰 �� programmers.co.kr 풀이 완전 탐색으로 나열해놓고 풀까 하다가 갑자기 떠올랐다... 1. 원소는 1000이하이므로 무조건 3글자 이상으로 비교되도록 글자 수를 3번 반복해서 v에 넣어준다. (한 글자짜리가 3글자로 비교되도록) 2. 정렬할 때는 reverse_iterator 이용해서 사전 순 반대로 정렬했다. (사전 순 반대로 정렬되도록) 3. answer에 큰 순서대로 저장되도록 더해준다. 주의! 0..