본문 바로가기

반응형

프로그래머스

[프로그래머스] level1. 정수 제곱근 판별 (javascript) 문제 임의의 양의 정수 n에 대해, n이 어떤 양의 정수 x의 제곱인지 아닌지 판단하려 합니다. n이 양의 정수 x의 제곱이라면 x+1의 제곱을 리턴하고, n이 양의 정수 x의 제곱이 아니라면 -1을 리턴하는 함수를 완성하세요. 나의 풀이 function solution(n) { // console.log(Number.isInteger(Math.sqrt(n))) const val = Math.sqrt(n) return val == Math.floor(val) ? Math.pow(val+1,2) : -1 } 다른 이의 정답 function nextSqaure(n){ switch(n % Math.sqrt(n)){ case 0: return Math.pow(Math.sqrt(n) + 1, 2); default.. 더보기
[프로그래머스] level1. [1차] 비밀지도 (javascript) 문제 네오는 평소 프로도가 비상금을 숨겨놓는 장소를 알려줄 비밀지도를 손에 넣었다. 그런데 이 비밀지도는 숫자로 암호화되어 있어 위치를 확인하기 위해서는 암호를 해독해야 한다. 다행히 지도 암호를 해독할 방법을 적어놓은 메모도 함께 발견했다. 지도는 한 변의 길이가 n인 정사각형 배열 형태로, 각 칸은 "공백"(" ") 또는 "벽"("#") 두 종류로 이루어져 있다. 전체 지도는 두 장의 지도를 겹쳐서 얻을 수 있다. 각각 "지도 1"과 "지도 2"라고 하자. 지도 1 또는 지도 2 중 어느 하나라도 벽인 부분은 전체 지도에서도 벽이다. 지도 1과 지도 2에서 모두 공백인 부분은 전체 지도에서도 공백이다. "지도 1"과 "지도 2"는 각각 정수 배열로 암호화되어 있다. 암호화된 배열은 지도의 각 가로줄에.. 더보기
[프로그래머스] level1. 이상한 문자 만들기 (javascript) 문제 문자열 s는 한 개 이상의 단어로 구성되어 있습니다. 각 단어는 하나 이상의 공백문자로 구분되어 있습니다. 각 단어의 짝수번째 알파벳은 대문자로, 홀수번째 알파벳은 소문자로 바꾼 문자열을 리턴하는 함수, solution을 완성하세요. 나의 풀이 function solution(s) { let answer = []; const tmp = s.split(&#39; &#39;); for(let i =0; i < tmp.length; i ++){ let tmp2 = tmp[i].split(&#39;&#39;) for(let j =0; j < tmp[i].length; j ++){ j % 2 === 0 ? tmp2[j] = tmp2[j].toUpperCase() : tmp2[j] = tmp2[j].toLow.. 더보기
[프로그래머스] level1. 문자열 다루기 기본 (javascript) 문제 문자열 s의 길이가 4 혹은 6이고, 숫자로만 구성돼있는지 확인해주는 함수, solution을 완성하세요. 예를 들어 s가 "a234"이면 False를 리턴하고 "1234"라면 True를 리턴하면 됩니다. 나의풀이 function solution(s) { if (!(s.length == 4 || s.length == 6)){ return false } else { const tmp = s.split(&#39;&#39;) for(let i =0;i 더보기
[프로그래머스] level1. 자연수 뒤집어 배열로 만들기 (javascript) 문제 자연수 n을 뒤집어 각 자리 숫자를 원소로 가지는 배열 형태로 리턴해주세요. 예를들어 n이 12345이면 [5,4,3,2,1]을 리턴합니다. 나의 풀이 function solution(n) { const str_arr = (n+"").split(&#39;&#39;).reverse(); let answer = [] for( let i =0; i 숫자(진수) parseInt() 숫자 -> 문자열 toString() parseInt를 사용하기 위해 문자열로 바꿔주는 작업을 해주었다. 다른이들의 풀이 function solution(n) { // 문자풀이 // r.. 더보기
[프로그래머스] level1. 키패드 누르기 (javascript) 문제 스마트폰 전화 키패드의 각 칸에 다음과 같이 숫자들이 적혀 있습니다. 이 전화 키패드에서 왼손과 오른손의 엄지손가락만을 이용해서 숫자만을 입력하려고 합니다. 맨 처음 왼손 엄지손가락은 * 키패드에 오른손 엄지손가락은 # 키패드 위치에서 시작하며, 엄지손가락을 사용하는 규칙은 다음과 같습니다. 엄지손가락은 상하좌우 4가지 방향으로만 이동할 수 있으며 키패드 이동 한 칸은 거리로 1에 해당합니다. 왼쪽 열의 3개의 숫자 1, 4, 7을 입력할 때는 왼손 엄지손가락을 사용합니다. 오른쪽 열의 3개의 숫자 3, 6, 9를 입력할 때는 오른손 엄지손가락을 사용합니다. 가운데 열의 4개의 숫자 2, 5, 8, 0을 입력할 때는 두 엄지손가락의 현재 키패드의 위치에서 더 가까운 엄지손가락을 사용합니다. 4-1... 더보기
[프로그래머스] level1. 음양 더하기 (javascript) 문제 어떤 정수들이 있습니다. 이 정수들의 절댓값을 차례대로 담은 정수 배열 absolutes와 이 정수들의 부호를 차례대로 담은 불리언 배열 signs가 매개변수로 주어집니다. 실제 정수들의 합을 구하여 return 하도록 solution 함수를 완성해주세요. 나의 풀이 function solution(absolutes, signs) { return absolutes.reduce((acc,cur,i)=> signs[i] ? acc+cur : acc - cur,0) } 초기값을 넣어주는거 잊지말자! 더보기
[프로그래머스] level1. 소수 만들기 (javascript) 문제 주어진 숫자 중 3개의 수를 더했을 때 소수가 되는 경우의 개수를 구하려고 합니다. 숫자들이 들어있는 배열 nums가 매개변수로 주어질 때, nums에 있는 숫자들 중 서로 다른 3개를 골라 더했을 때 소수가 되는 경우의 개수를 return 하도록 solution 함수를 완성해주세요. 나의 풀이 sort를 통해서 가장 큰 수 3개를 얻는다. 가장 큰 수 기준으로 나올 수 있는 소수를 모두 구한다. 주어진 배열에서 나올수 있는 3개의 합을 다 구한다. 겹치는걸 찾는다. function solution(nums) { var answer = -1; const arange = nums.sort((a,b)=>a-b).slice(nums.length-3,nums.length+1).reduce((acc,cur).. 더보기

반응형