js 30

프로그래머스 자주 사용되는 함수 모음

* set 집합. 중복을 허용하지 않습니다. let ot = [...new Set([...one, ...two])]; 여기서는 Spread Operator(전개연산자) '...'로 Set 객체의 값들을 하나씩 전개, 즉 꺼내서 새로운 배열의 원소로 넣고, ot에 저장하는 것을 의미합니다. *.includes() 배열이 특정 요소를 포함하고 있는지 판별합니다. ot.includes(히밥) 위 코드는 ot 배열이 '히밥'이라는 문자열을 포함하는지 판별합니다. *.filter() 주어진 함수의 test를 통과하는 모든 요소를 모아 새로운 배열로 반환합니다. let winner = bj.filter(x => !ot.includes(x)); 여기서는 bj 함수를 대상으로 ot 함수에 있는 값이 bj에 없는 요소(..

[js] 3진법 뒤집기_Ternary Flip

[문제 설명] 자연수 n이 매개변수로 주어집니다. n을 3진법 상에서 앞뒤로 뒤집은 후, 이를 다시 10진법으로 표현한 수를 return 하도록 solution 함수를 완성해주세요. [제한사항] n은 1 이상 100,000,000 이하인 자연수입니다. [입출력 예] nresult 45 7 125 229 [입출력 예 설명] 입출력 예 #1 답을 도출하는 과정은 다음과 같습니다. n (10진법)n (3진법)앞뒤 반전(3진법)10진법으로 표현 45 1200 0021 7 따라서 7을 return 해야 합니다. 입출력 예 #2 답을 도출하는 과정은 다음과 같습니다. n (10진법)n (3진법)앞뒤 반전(3진법)10진법으로 표현 125 11122 22111 229 따라서 229를 return 해야 합니다. [문제 ..

[js] 최대공약수와 최소공배수_Maximum common divisor Minimum common multiple_Gcd And Lcm

[문제 설명] 두 수를 입력받아 두 수의 최대공약수와 최소공배수를 반환하는 함수, solution을 완성해 보세요. 배열의 맨 앞에 최대공약수, 그다음 최소공배수를 넣어 반환하면 됩니다. 예를 들어 두 수 3, 12의 최대공약수는 3, 최소공배수는 12이므로 solution(3, 12)는 [3, 12]를 반환해야 합니다. [제한 사항] 두 수는 1이상 1000000이하의 자연수입니다. [입출력 예] nmreturn 3 12 [3, 12] 2 5 [1, 10] [입출력 예 설명] 입출력 예 #1 위의 설명과 같습니다. 입출력 예 #2 자연수 2와 5의 최대공약수는 1, 최소공배수는 10이므로 [1, 10]을 리턴해야 합니다. [문제 풀이] function solution(n, m) { let gcd = (..

개발에 도움이 되는 수학

* 등차순열의 합 1부터 n까지 등차수열의 합은 위 공식과 같습니다. 즉, 코드상에서는 1부터 count까지의 합에 price를 곱해준 것이라고 해석할 수 있습니다. * 가우스 덧셈 법칙 가장 앞, 가장 뒤 숫자를 더한 합과 전체 개수의 절반을 곱하면 연속된 숫자의 합을 구할 수 있습니다. 즉, A~B의 숫자를 더해야한다고 할 때, 가장 앞, 가장 뒤 숫자를 더한 합은 A+B, 전체 개수는 B-A+1 이므로 이를 식으로 나타내면 아래와 같습니다. (A+B) * (B-A+1) / 2 * 삼각형이 만들어지는 조건 가장 긴 변의 길이 < 다른 두 변 길이의 합 * 약수의 개수 제곱근이 정수면 약수의 개수는 홀수 * 최단경로 구하기 (가로의 길이+세로의 길이)! / ((가로의 길이)! * (세로의 길이)!) 위..

[js] 같은 숫자는 싫어_HateSameNumber

[문제 설명] 배열 arr가 주어집니다. 배열 arr의 각 원소는 숫자 0부터 9까지로 이루어져 있습니다. 이때, 배열 arr에서 연속적으로 나타나는 숫자는 하나만 남기고 전부 제거하려고 합니다. 단, 제거된 후 남은 수들을 반환할 때는 배열 arr의 원소들의 순서를 유지해야 합니다. 예를 들면, arr = [1, 1, 3, 3, 0, 1, 1] 이면 [1, 3, 0, 1] 을 return 합니다. arr = [4, 4, 4, 3, 3] 이면 [4, 3] 을 return 합니다. 배열 arr에서 연속적으로 나타나는 숫자는 제거하고 남은 수들을 return 하는 solution 함수를 완성해 주세요. 제한사항 배열 arr의 크기 : 1,000,000 이하의 자연수 배열 arr의 원소의 크기 : 0보다 크거..

카테고리 없음 2023.01.18

[js] 가운데 글자 가져오기_Import Middle Letter

[문제 설명] 단어 s의 가운데 글자를 반환하는 함수, solution을 만들어 보세요. 단어의 길이가 짝수라면 가운데 두글자를 반환하면 됩니다. [제한사항] s는 길이가 1 이상, 100이하인 스트링입니다. 입출력 예 sreturn "abcde" "c" "qwer" "we" [문제 풀이] function solution(s) { return s.length % 2 == 0 ? s.slice(s.length/2-1, s.length/2+1):s[s.length/2-0.5]; } [해설] 문자열이 2로 나누어 떨어지는 짝수 개일 경우, slice를 이용하여 가운데 두 글자 출력 문자열이 2로 나누어 떨어지지 않는 홀수 개일 경우, 가운데 한 글자 출력 [다른 사람 풀이] function solution(s..

카테고리 없음 2023.01.18

[js] 부족한 금액 계산하기_Calculate The Shortfall

[문제 설명] 새로 생긴 놀이기구는 인기가 매우 많아 줄이 끊이질 않습니다. 이 놀이기구의 원래 이용료는 price원 인데, 놀이기구를 N 번 째 이용한다면 원래 이용료의 N배를 받기로 하였습니다. 즉, 처음 이용료가 100이었다면 2번째에는 200, 3번째에는 300으로 요금이 인상됩니다. 놀이기구를 count번 타게 되면 현재 자신이 가지고 있는 금액에서 얼마가 모자라는지를 return 하도록 solution 함수를 완성하세요. 단, 금액이 부족하지 않으면 0을 return 하세요.제한사항 놀이기구의 이용료 price : 1 ≤ price ≤ 2,500, price는 자연수 처음 가지고 있던 금액 money : 1 ≤ money ≤ 1,000,000,000, money는 자연수 놀이기구의 이용 횟수 ..

카테고리 없음 2023.01.17

[js] 없는 숫자 더하기_Add Missing Numbers

[문제 설명] 0부터 9까지의 숫자 중 일부가 들어있는 정수 배열 numbers가 매개변수로 주어집니다. numbers에서 찾을 수 없는 0부터 9까지의 숫자를 모두 찾아 더한 수를 return 하도록 solution 함수를 완성해주세요. [제한사항] 1 ≤ numbers의 길이 ≤ 9 0 ≤ numbers의 모든 원소 ≤ 9 numbers의 모든 원소는 서로 다릅니다. 입출력 예numbersresult [1,2,3,4,6,7,8,0] 14 [5,8,4,0,6,7,9] 6 입출력 예 설명 입출력 예 #1 5, 9가 numbers에 없으므로, 5 + 9 = 14를 return 해야 합니다. 입출력 예 #2 1, 2, 3이 numbers에 없으므로, 1 + 2 + 3 = 6을 return 해야 합니다. [문..

카테고리 없음 2023.01.16

[js] 문자열에서 연속한 알파벳 소거하기_Repeat Alphabet

[문제 설명] S는 알파벳으로 이루어진 문자열 입니다. 해당 문자열에서 2회 이상 연속해서 나오는 알파벳을 소거 합니다. 소거한뒤에 나온 문자열에서 다시 연속해서 나오는 알파벳을 소거하는 작업을 더이상 작업할 것이 없을 때 까지 반복합니다. 이때 최종 문자열이 완전히 소거되어 빈 문자열이라면 1을 리턴하고 알파벳이 남아있으면 0을 리턴하는 함수를 작성하세요. [입력] 문자열 S [출력] 조건 수행후 문자열이 비어있다면 1, 남아있다면 0 [문제 풀이] function solution(S) { let arr = []; let result = 0; for(let i=0;i

카테고리 없음 2023.01.13

[js] 평균 소득액 구하기_Disaster Assistance Amount

[문제 설명] 재난 지원금을 지급하기 위해 국민의 평균 소득액을 구하려고 합니다. 국민의 소득을 그대로 평균 내면 잡음이 심하여, 최상위 최하위 1건씩 제외한 소득 평균을 출력하는 함수, solution을 완성해주세요. 예를 들어, 국민의 소득액 arr가 [1, 3, 3, 3, 5]일 때, 최상위 최하위 1건씩 제외한 소득 평균은 3입니다. [제한 사항] - 국민의 소득액 arr는 정렬되어있지 않습니다. - 평균의 소수점은 절삭 후 출력합니다. [입력 형식] - 국민의 소득액 정보 arr는 길이가 1 이상 1\,000 이하의 배열입니다. - 소득액인 arr의 각 요소는 0 이상 1\,000\,000 이하의 정수입니다. [출력 형식] - 최상위 최하위 1건씩 제외한 소득 평균을 int 형식으로 출력합니다...