Programmers/Level 1 28

[프로그래머스 / JavaScript] - 정수 제곱근 판별

출처/프로그래머스 ● 문제 설명 임의의 양의 정수 n에 대해, n이 어떤 양의 정수 x의 제곱인지 아닌지 판단하려 합니다. n이 양의 정수 x의 제곱이라면 x+1의 제곱을 리턴하고, n이 양의 정수 x의 제곱이 아니라면 -1을 리턴하는 함수를 완성하세요. ● 제한 사항 n은 1 이상, 50000000000000 이하인 양의 정수입니다. ● 입출력 예 n return 121 144 3 -1 ● 입출력 예 설명 입출력 예#1 121은 양의 정수 11의 제곱이므로, (11+1)를 제곱한 144를 리턴합니다. 입출력 예#2 3은 양의 정수의 제곱이 아니므로, -1을 리턴합니다. 나의 풀이 function solution(n) { return Number.isInteger(Math.sqrt(n)) ? Math.p..

Programmers/Level 1 2022.04.29

[프로그래머스 / JavaScript] - 이상한 문자 만들기

출처/프로그래머스 ● 문제 설명 문자열 s는 한 개 이상의 단어로 구성되어 있습니다. 각 단어는 하나 이상의 공백 문자로 구분되어 있습니다. 각 단어의 짝수번째 알파벳은 대문자로, 홀수번째 알파벳은 소문자로 바꾼 문자열을 리턴하는 함수, solution을 완성하세요. ● 제한 사항 문자열 전체의 짝/홀수 인덱스가 아니라, 단어(공백을 기준)별로 짝/홀수 인덱스를 판단해야합니다. 첫 번째 글자는 0번째 인덱스로 보아 짝수번째 알파벳으로 처리해야 합니다. ● 입출력 예 s return "try hello world" "TrY HeLlO WoRlD" ● 입출력 예 설명 "try hello world"는 세 단어 "try", "hello", "world"로 구성되어 있습니다. 각 단어의 짝수번째 문자를 대문자로..

Programmers/Level 1 2022.04.28

[프로그래머스 / JavaScript] - 자릿수 더하기

출처/프로그래머스 ● 문제 설명 자연수 N이 주어지면, N의 각 자릿수의 합을 구해서 return 하는 solution 함수를 만들어 주세요. 예를 들어 N = 123이면 1 + 2 + 3 = 6을 return 하면 됩니다. ● 제한 사항 N의 범위 : 100,000,000 이하의 자연수 ● 입출력 예 N answer 123 6 987 24 ● 입출력 예 설명 입출력 예 #1 문제의 예시와 같습니다. 입출력 예 #2 9 + 8 + 7 = 24이므로 24를 return 하면 됩니다. 나의 풀이 function solution(n){ return n.toString().split("").reduce((acc, res) => acc + Number(res), 0) } 숫자를 배열로 변환하고 reduce() 를..

Programmers/Level 1 2022.04.28

[프로그래머스 / JavaScript] - 제일 작은 수 제거하기

출처/프로그래머스 ● 문제 설명 정수를 저장한 배열, arr 에서 가장 작은 수를 제거한 배열을 리턴하는 함수, solution을 완성해주세요. 단, 리턴하려는 배열이 빈 배열인 경우엔 배열에 -1을 채워 리턴하세요. 예를들어 arr이 [4,3,2,1]인 경우는 [4,3,2]를 리턴 하고, [10]면 [-1]을 리턴 합니다. ● 제한 조건 arr은 길이 1 이상인 배열입니다. 인덱스 i, j에 대해 i ≠ j이면 arr[i] ≠ arr[j] 입니다. ● 입출력 예 arr return [4, 3, 2, 1] [4, 3, 2] [10] [-1] 나의 풀이 function solution(arr) { return arr.length > 1 ? arr.filter((val) => val !== Math.min...

Programmers/Level 1 2022.04.26

[프로그래머스 / JavaScript] - 정수 내림차순으로 배치하기

출처/프로그래머스 ● 문제 설명 함수 solution은 정수 n을 매개변수로 입력받습니다. n의 각 자릿수를 큰 것부터 작은 순으로 정렬한 새로운 정수를 리턴해주세요. 예를 들어 n이 118372면 873211을 리턴하면 됩니다. ● 제한 조건 n은 1이상 8000000000 이하인 자연수입니다. ● 입출력 예 n return 118372 873211 나의 풀이 function solution(n) { return Number(n.toString().split("").sort().reverse().join("")); } 매개변수 n을 문자열로 형 변환하고(toString), 쪼개고(split), 정렬하여(sort) 거꾸로 뒤집은 후(reverse) 다시 합쳐주고(join), 결과값을 숫자로(Number)..

Programmers/Level 1 2022.04.25

[프로그래머스 / JavaScript] - 핸드폰 번호 가리기

출처/프로그래머스 ● 문제 설명 프로그래머스 모바일은 개인정보 보호를 위해 고지서를 보낼 때 고객들의 전화번호의 일부를 가립니다. 전화번호가 문자열 phone_number로 주어졌을 때, 전화번호의 뒷 4자리를 제외한 나머지 숫자를 전부 *으로 가린 문자열을 리턴하는 함수, solution을 완성해주세요. ● 제한 조건 phone_number는 길이 4 이상, 20이하인 문자열입니다. ● 입출력 예 phone_number return "01033334444" "*******4444" "027778888" "*****8888" 나의 풀이 function solution(phone_number) { var answer = phone_number.split('').fill('*',0,-4).join(''); ..

Programmers/Level 1 2022.04.25

[프로그래머스 / JavaScript] - 행렬의 덧셈

출처/프로그래머스 ● 문제 설명 행렬의 덧셈은 행과 열의 크기가 같은 두 행렬의 같은 행, 같은 열의 값을 서로 더한 결과가 됩니다. 2개의 행렬 arr1과 arr2를 입력받아, 행렬 덧셈의 결과를 반환하는 함수, solution을 완성해주세요. ● 제한조건 행렬 arr1, arr2의 행과 열의 길이는 500을 넘지 않습니다. ● 입출력 예 arr1 arr2 return [[1,2],[2,3]] [[3,4],[5,6]] [[4,6],[7,9]] [[1],[2]] [[3],[4]] [[4],[6]] 나의 풀이 function solution(arr1, arr2) { return arr1.map((arr, i) => arr.map((n, j) => n+arr2[i][j])); }

Programmers/Level 1 2022.04.24

[프로그래머스 / JavaScript] - K번째수

출처/프로그래머스 ● 문제 설명 배열 array의 i번째 숫자부터 j번째 숫자까지 자르고 정렬했을 때, k번째에 있는 수를 구하려 합니다. 예를 들어 array가 [1, 5, 2, 6, 3, 7, 4], i = 2, j = 5, k = 3이라면 array의 2번째부터 5번째까지 자르면 [5, 2, 6, 3]입니다. 1에서 나온 배열을 정렬하면 [2, 3, 5, 6]입니다. 2에서 나온 배열의 3번째 숫자는 5입니다. 배열 array, [i, j, k]를 원소로 가진 2차원 배열 commands가 매개변수로 주어질 때, commands의 모든 원소에 대해 앞서 설명한 연산을 적용했을 때 나온 결과를 배열에 담아 return 하도록 solution 함수를 작성해주세요. ● 제한사항 array의 길이는 1 이..

Programmers/Level 1 2022.04.23