✏️기록하는 즐거움
article thumbnail
[프로그래머스] 약수의 합 - level 1 (javascript)
Algorithm/Programmers 2022. 7. 23. 14:10

프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr | 제출 function solution(n) { let sum = 0; for (let i = 1; i

article thumbnail
[프로그래머스] 이상한 문자 만들기 - level 1 (javascript)
Algorithm/Programmers 2022. 7. 18. 10:17

프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr | 제출 function solution(s) { let arr = s.split(" "); for (let i = 0; i index % 2 === 0 ? item.toUpperCase() : item.toLowerCase() ) .join(""); } return arr.join(" "); } | 풀이과정 문자열 전체가 아닌 단어별로 짝/홀수 인덱스를 판단해야한다. 따라서 공백을 기..

article thumbnail
[프로그래머스] 자릿수 더하기 - level 1 (javascript)
Algorithm/Programmers 2022. 7. 18. 10:17

프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. 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 함수를 실행한 결과값을 반환한다. 👇..

article thumbnail
[프로그래머스] 자연수 뒤집어 배열로 만들기 - level 1 (javascript)
Algorithm/Programmers 2022. 7. 18. 10:06

프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr | 제출 function solution(n) { return n.toString().split("").reverse().map(Number); } | 풀이과정 reverse() 메서드를 사용하여 순서를 뒤집은 뒤, string 배열 요소들을 number 요소로 변경하여 반환한다. | 개념 Array.prototype.reverse() 배열의 순서를 반전한다. 마지막 요소는 첫 번째 요소가 되고, 첫 번째 요소는 마지막 요소가 된다. 👇 유사한 문제👇 [프로그래머스] 정수 내림차순으로 배치하기 - level ..

article thumbnail
[프로그래머스] 정수 내림차순으로 배치하기 - level 1 (javascript)
Algorithm/Programmers 2022. 7. 7. 23:49

프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. 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..

article thumbnail
[프로그래머스] 정수 제곱근 판별 - level 1 (javascript)
Algorithm/Programmers 2022. 7. 5. 23:03

프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. 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() 주어진 밑 값에 주어진 지수 값으로 거듭제곱한 숫자를 반환한다. 첫 번째 인자로 밑 값, 두 번째 인자..

article thumbnail
[프로그래머스] 제일 작은 수 제거하기 - level 1 (javascript)
Algorithm/Programmers 2022. 7. 5. 22:42

프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. 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..

article thumbnail
[프로그래머스] 짝수와 홀수 - level 1 (javascript)
Algorithm/Programmers 2022. 7. 4. 21:52

코딩테스트 연습 - 짝수와 홀수 정수 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문의 축약된 형태 ?(물음표) 앞에 조건문이 들어가고 그..

article thumbnail
[프로그래머스] 최대공약수와 최소공배수 - level 1 (javascript)
Algorithm/Programmers 2022. 7. 4. 21:46

코딩테스트 연습 - 최대공약수와 최소공배수 두 수를 입력받아 두 수의 최대공약수와 최소공배수를 반환하는 함수, 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 = 최대공약수 * 최소..

article thumbnail
[프로그래머스] 콜라츠 추측 - level 1 (javascript)
Algorithm/Programmers 2022. 7. 2. 22:59

코딩테스트 연습 - 콜라츠 추측 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이 아니라면 반복적인 작..