꾸준한 개발자

계속적인 성장을 추구하는 개발자입니다. 꾸준함을 추구합니다.

계속 쓰는 개발 노트

알고리즘 31

자바스크립트 '두 정수 사이의 합'

adder 함수는 정수 x, y를 인수로 전달받는다. 두 수와 두 수 사이에 있는 모든 정수를 더해서 리턴하도록 함수를 완성하라. x와 y가 같은 경우는 둘 중 아무 수나 리턴한다. x, y는 음수나 0, 양수일 수 있으며 둘의 대소 관계도 정해져 있지 않다. 예를 들어 x가 3, y가 5이면 12를 리턴한다. function adder(x, y){ } console.log(adder(3, 5)); // 12 풀이 function adder(x, y) { let sum = 0; for (let i = x; i

자바스크립트 '배열의 첫 요소와 마지막 요소로 배열 만들기'

배열의 첫 요소와 마지막 요소를 나타내는 정수를 인자로 받아 정수의 배열을 반환하는 함수를 완성하라. 예를 들어 인수가 [10, 15]인 경우, [ 10, 11, 12, 13, 14, 15 ]를 반환한다. function generateRange(from, to) { const res = []; return res; } console.log(generateRange(10, 15)); // [ 10, 11, 12, 13, 14, 15 ] 풀이 function generateRange(from, to) { const res = []; for (let i = from; i

자바스크립트 '하샤드 수'

하샤드 수는 그 수의 각 자릿수 숫자의 합으로 그 수가 나누어지는 양의 정수를 말한다. 양의 정수 x가 하샤드 수이려면 x의 자릿수의 합으로 x가 나누어져야 한다. 예를 들어 18의 자릿수 합은 1+8=9이고, 18은 9로 나누어 떨어지므로 18은 하샤드 수이다. 10, 12, 18, 20, 21, 24, 27, 30, 36, 40, 42, 45, 48, 50, 54, 60, 63, 70, 72, 80, 81, 84, 90, 100, 102, 108, 110, 111, 112, 114, 117, 120, 126, 132, 133, 135, 140, 144, 150, 152, 153, 156, 162, 171, 180, 190, 192, 195, 198, 200 Harshad함수는 양의 정수 n을 매개변수..

자바스크립트 '각 자릿수의 합 구하기'

정수 n이 주어지면, n의 각 자릿수의 합을 구해서 반환하는 digitSum 함수를 완성하라. 예를 들어 n = 123이면 1 + 2 + 3 = 6을 반환한다. 단, n은 100,000,000 이하의 정수로 한다. function digitSum(n) { } console.log(digitSum(123)); // 6 console.log(digitSum(987)); // 24 console.log(digitSum(100000001)); // false 풀이 function digitSum(n) { if (n > 100000000) return false; return [...(n + '')].reduce((pre, cur) => pre + +cur, 0); } console.log(digitSum(123..

자바스크립트 '피보나치 수'

피보나치 수는 0과 1로 시작하며, 다음 피보나치 수는 바로 앞의 두 피보나치 수의 합이 된다. 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597, 2584, 4181, 6765, 10946… 2 이상의 n이 입력되었을 때, n번째 피보나치 수를 반환하는 fibonacci 함수를 작성하라. 예를 들어 n = 3이라면 2를 반환한다. function fibonacci(n) { } console.log(fibonacci(2)); // 1 console.log(fibonacci(3)); // 2 console.log(fibonacci(4)); // 3 console.log(fibonacci(5)); // 5 console.log(fi..

자바스크립트 '약수의 합'

어떤 수를 입력받아 그 수의 약수를 모두 더한 수를 구하는 sumDivisor 함수를 완성하라. 예를 들어 12가 입력된다면 12의 약수는 [1, 2, 3, 4, 6, 12]가 되고, 총합은 28이 되므로 28을 반환한다. 약수(約數, divisor)는 어떤 수를 나누었을 때 나머지가 0인 수를 말하며, 배수 관계와 서로 반대되는 개념이다. function sumDivisor(num) { } console.log(sumDivisor(12)); // 28 풀이 function sumDivisor(num) { let result = num; for (let i = 1; i

자바스크립트 'Check Pailindrom'

palindrome(팰린드롬/회문)은 왼쪽에서 오른쪽으로 읽은 다음, 오른쪽부터 왼쪽으로 다시 읽어도 똑같은 형태와 의미를 유지하는 문장이나 단어를 지칭한다. 인자로 전달한 문자열이 palindrome인지 검사하여 Boolean값을 반환하는 함수를 완성하라. 단, 반드시 1자 이상의 문자열을 인자로 전달한다. function checkPalindrom(str) { } console.log(checkPalindrom('dad')); // true console.log(checkPalindrom('mom')); // true console.log(checkPalindrom('palindrom')); // false console.log(checkPalindrom('s')); // true 풀이 functio..

자바스크립트 '배열의 최댓값/최솟값 구하기'

배열의 요소 중 최댓값/최솟값을 반환하는 함수를 완성하라. function getMaxValueFromArray(array) { } console.log(getMaxValueFromArray([3, 6, -2, -5, 7, 3])); // 7 function getMinValueFromArray(array) { } console.log(getMinValueFromArray([3, 6, -2, -5, 7, 3])); // -5 풀이 function getMaxValueFromArray(array) { return Math.max(...array); } console.log(getMaxValueFromArray([3, 6, -2, -5, 7, 3])); // 7 function getMinValueFromA..

자바스크립트 '정수제곱근 판별하기'

nextSqaure함수는 정수를 인수로 전달받는다. n이 임의의 정수 x의 제곱이라면 x+1의 제곱을 리턴하고, n이 임의의 정수 x의 제곱이 아니라면 ‘no’를 리턴하는 함수를 작성하라. 예를 들어 n이 121이라면 이는 정수 11의 제곱이므로 (11+1)의 제곱인 144를 리턴하고, 3이라면 ‘no’을 리턴한다. function nextSqaure(n){ } console.log(nextSqaure()); // no console.log(nextSqaure(0)); // 1 console.log(nextSqaure(1)); // 4 console.log(nextSqaure(2)); // no console.log(nextSqaure(3)); // no console.log(nextSqaure(121)..