문제 설명 문제 풀이 방법 Map 객체를 이용해 중복되는 사이즈의 귤 개수를 구한 뒤, 배열화 하여 sort로 큰 사이즈 순으로 정렬해 k 만큼 귤 개수를 채울 만큼 카운트를 늘려나간다. 코드 function solution(k, tangerine) { let freq = new Map(); let answer = 0; tangerine.forEach(e => freq.set(e, (freq.get(e) || 0) + 1)); const arr = [...freq].sort((a, b) => b[1] - a[1]).map(e => e[1]); while(k > 0){ k -= arr.shift(); answer++; } return answer }
문제 설명 함수 solution은 정수 n을 매개변수로 입력받습니다. n의 각 자릿수를 큰것부터 작은 순으로 정렬한 새로운 정수를 리턴해주세요. 예를들어 n이 118372면 873211을 리턴하면 됩니다. 제한 사항 n은 1이상 8000000000 이하인 자연수입니다. 문제 풀이 방법 number타입으로 입력이 들어오기에 내가 원하는 배열에서 비교를 하기위해 해체할당으로 배열에 할당한다. 그리고 각 요소들을 숫자 타입으로 바꾸기 위해 1을 곱해주고 이후 sort 메서드를 이용해 비교해 준다. 이후 join 메서드를 이용해 문자열로 만들어 준뒤 1을 곱해줘 number 타입으로 변환시켜준다. 코드 function solution(n) { return [...(n+"")].map(e => e*1).sort(..
문제 설명 문자열 s에 나타나는 문자를 큰것부터 작은 순으로 정렬해 새로운 문자열을 리턴하는 함수, solution을 완성해주세요. s는 영문 대소문자로만 구성되어 있으며, 대문자는 소문자보다 작은 것으로 간주합니다. 제한 사항 str은 길이 1 이상인 문자열입니다. 문제 풀이 방법 이 문제는 주어진 문자열 s를 정렬하는 것으로 대문자는 소문자보다 작은 것으로 간주한다. 기본적으로는 대문자가 더 앞으로 정렬되며, abc... 순으로 정렬되므로 순서를 한번 뒤집어준다. 그리고 나온 배열을 문자열로 합쳐주면 된다. 내가 작성한 코드 const solution = (s) => { return s.split('').sort().reverse().join(''); }
문제 설명 어떤 과학자가 발표한 논문 n편 중, h번 이상 인용된 논문이 h편 이상이고 나머지 논문이 h번 이하 인용되었다면 h의 최댓값이 이 과학자의 H-Index입니다. 어떤 과학자가 발표한 논문의 인용 횟수를 담은 배열 citations가 매개변수로 주어질 때, 이 과학자의 H-Index를 return 하도록 solution 함수를 작성해주세요. 제한 사항 과학자가 발표한 논문의 수는 1편 이상 1,000편 이하입니다. 논문별 인용 횟수는 0회 이상 10,000회 이하입니다. 문제 풀이 방법 주어진 배열을 내림 차순으로 정렬한다. i 번째 논문이 i+1 보다 같거나 큰 i의 수를 찾아 반환 코드 function solution(citations) { let i=0; citations.sort((a,..
문제 설명 0 또는 양의 정수가 주어졌을 때, 정수를 이어 붙여 만들 수 있는 가장 큰 수를 알아내 주세요. 예를 들어, 주어진 정수가 [6, 10, 2]라면 [6102, 6210, 1062, 1026, 2610, 2106]를 만들 수 있고, 이중 가장 큰 수는 6210입니다. 0 또는 양의 정수가 담긴 배열 numbers가 매개변수로 주어질 때, 순서를 재배치하여 만들 수 있는 가장 큰 수를 문자열로 바꾸어 return 하도록 solution 함수를 작성해주세요. 제한 사항 numbers의 길이는 1 이상 100,000 이하입니다. numbers의 원소는 0 이상 1,000 이하입니다. 정답이 너무 클 수 있으니 문자열로 바꾸어 return 합니다. 문제 풀이 방법 우선 숫자가 배열에 감싸여져 전달이 ..
문제 설명 배열 array의 i번째 숫자부터 j번째 숫자까지 자르고 정렬했을 때, k번째에 있는 숫자를 구하려한다. 배열 array, [i, j, k]를 원소로 가진 2차원 배열 commands가 매개변수로 주어질 때, commands의 모든 원소에 대해 앞서 설명한 연산을 적용했을 때 나온 결과를 배열에 담아 return 하도록 solution 함수를 작성해주세요. 제한 사항 array의 길이는 1 이상 100 이하입니다. array의 각 원소는 1 이상 100 이하입니다. commands의 길이는 1 이상 50 이하입니다. commands의 각 원소는 길이가 3입니다. 문제 풀이 방법 command가 배열 형태이며 각각 시작점, 끝점, 선택할 번수 가 적혀있다. array를 command의 길이 만큼..