프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr | 제출 function solution(n) { return n.toString().split("").map(Number).reduce((a,b) => a + b); } | 풀이과정 입력받은 N의 각 자릿수의 합을 구해야하기 때문에 우선 N을 split() 메서드로 분리한다. split() 메서드를 사용하면 배열이 되기 때문에 reduce() 메서드를 사용해서 합을 구한다. | 개념 Array.prototype.reduce() 배열의 각 요소에 대해 주어진 reducer 함수를 실행한 결과값을 반환한다. 👇..
프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr | 제출 function solution(n) { return n.toString().split("").reverse().map(Number); } | 풀이과정 reverse() 메서드를 사용하여 순서를 뒤집은 뒤, string 배열 요소들을 number 요소로 변경하여 반환한다. | 개념 Array.prototype.reverse() 배열의 순서를 반전한다. 마지막 요소는 첫 번째 요소가 되고, 첫 번째 요소는 마지막 요소가 된다. 👇 유사한 문제👇 [프로그래머스] 정수 내림차순으로 배치하기 - level ..
프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr | 제출 function solution(n) { return Number( n .toString() .split("") .sort((a, b) => b - a) .join("") ); } | 풀이과정 sort() 메서드를 사용하기 위해서는 데이터 타입이 배열이어야한다. 따라서, toString()으로 숫자 형태의 n을 String 형태로 변경한 후, split으로 숫자를 하나씩 나눠 배열 형태로 만든다. 이후 sort()를 사용하여 내림차순 정렬 후 join으로 합치고 Number 형태로 변환해서 retur..
프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr | 제출 function solution(n) { const x = Math.sqrt(n); return Number.isInteger(x) ? Math.pow(x+1, 2) : -1; } | 풀이과정 Math.sqrt()를 사용해서 제곱근을 x에 저장하고, 정수이면 x+1의 제곱을, 정수가 아니면 -1을 리턴한다. | 개념 Math.sqrt() 괄호 안에 있는 숫자의 제곱근을 반환한다. Math.pow() 주어진 밑 값에 주어진 지수 값으로 거듭제곱한 숫자를 반환한다. 첫 번째 인자로 밑 값, 두 번째 인자..
프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr | 제출 function solution(arr) { let min = arr[0]; arr.forEach((item) => (min = min > item ? item : min)); const filtered = arr.filter((item) => item !== min); return filtered.length > 0 ? filtered : [-1]; } | 풀이과정 forEach를 사용하여 배열 요소에서 최솟값을 구하고, filter 메서드로 최솟값을 제거하였다. 다른 사람의 풀이를 보니, forE..
코딩테스트 연습 - 짝수와 홀수 정수 num이 짝수일 경우 "Even"을 반환하고 홀수인 경우 "Odd"를 반환하는 함수, solution을 완성해주세요. 제한 조건 num은 int 범위의 정수입니다. 0은 짝수입니다. 입출력 예 num return 3 "Odd" 4 "Even" programmers.co.kr | 제출 function solution(num) { return num % 2 === 0 ? 'Even' : 'Odd' } | 풀이과정 num을 나누었을 때 나머지가 0이면 짝수이므로 Even을, 그렇지 않으면 홀수이므로 Odd를 반환한다. 0 % 2 = 0 이므로 짝수로 인식되어 코드 한 줄로 문제를 풀 수 있다. | 개념 삼항연산자 if문의 축약된 형태 ?(물음표) 앞에 조건문이 들어가고 그..
코딩테스트 연습 - 최대공약수와 최소공배수 두 수를 입력받아 두 수의 최대공약수와 최소공배수를 반환하는 함수, solution을 완성해 보세요. 배열의 맨 앞에 최대공약수, 그다음 최소공배수를 넣어 반환하면 됩니다. 예를 들어 두 수 3, 12의 programmers.co.kr | 제출 function solution(n, m) { const gcd = (a, b) => { return b == 0 ? a : gcd(b, a % b); } const lcm = (a, b) => (a * b) / gcd(a, b); return [gcd(n, m), lcm(n, m)]; } | 풀이과정 최대공약수는 유클리드 호제법을 사용해서 쉽게 구할 수 있다. 두 수 m과 n이 있을 때 m * n = 최대공약수 * 최소..
코딩테스트 연습 - 콜라츠 추측 1937년 Collatz란 사람에 의해 제기된 이 추측은, 주어진 수가 1이 될 때까지 다음 작업을 반복하면, 모든 수를 1로 만들 수 있다는 추측입니다. 작업은 다음과 같습니다. 1-1. 입력된 수가 짝수라면 2 programmers.co.kr | 제출 function solution(num) { let count = 0; if(num === 1){ return 0; } while(num !== 1){ if(num % 2 === 0){ num = num / 2; } else{ num = num * 3 + 1; } count ++; } return count > 500 ? -1 : count; } | 풀이과정 입력된 숫자가 1이면 0을 반환하고, 1이 아니라면 반복적인 작..
코딩테스트 연습 - 평균 구하기 정수를 담고 있는 배열 arr의 평균값을 return하는 함수, solution을 완성해보세요. 제한사항 arr은 길이 1 이상, 100 이하인 배열입니다. arr의 원소는 -10,000 이상 10,000 이하인 정수입니다. 입출력 예 arr programmers.co.kr | 제출 function solution(arr) { return arr.reduce((a, b) => a + b) / arr.length; } | 풀이과정 reduce() 메서드를 사용해서 배열의 모든 값을 더해준 후, 배열의 길이로 나누어 평균을 구한다. | 개념 Array.prototype.reduce() 배열의 각 요소에 대해 주어진 reducer 함수를 실행한 결과값을 반환한다. 더보기 - 개..
코딩테스트 연습 - 하샤드 수 양의 정수 x가 하샤드 수이려면 x의 자릿수의 합으로 x가 나누어져야 합니다. 예를 들어 18의 자릿수 합은 1+8=9이고, 18은 9로 나누어 떨어지므로 18은 하샤드 수입니다. 자연수 x를 입력받아 x가 하 programmers.co.kr | 제출 function solution(x) { let answer = true; let sum = 0; for (let i = 0; i < String(x).length; i++) { sum += Number(String(x)[i]); } answer = x % sum === 0; return answer; } | 풀이과정 숫자인 x를 String으로 형 변환 후 각 자리수를 sum에 더한다. x를 sum으로 나누어 떨어지면 하샤드..