본문 바로가기

반응형

전체 글

[프로그래머스] level1. 자연수 뒤집어 배열로 만들기 (javascript) 문제 자연수 n을 뒤집어 각 자리 숫자를 원소로 가지는 배열 형태로 리턴해주세요. 예를들어 n이 12345이면 [5,4,3,2,1]을 리턴합니다. 나의 풀이 function solution(n) { const str_arr = (n+"").split('').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).. 더보기
[프로그래머스] level1. 제일 작은 수 제거하기 (javascript) 문제 정수를 저장한 배열, arr 에서 가장 작은 수를 제거한 배열을 리턴하는 함수, solution을 완성해주세요. 단, 리턴하려는 배열이 빈 배열인 경우엔 배열에 -1을 채워 리턴하세요. 예를들어 arr이 [4,3,2,1]인 경우는 [4,3,2]를 리턴 하고, [10]면 [-1]을 리턴 합니다. 의식의 흐름 function solution(arr) { if (arr.length === 1) { return [-1] } const tmp = arr.slice() tmp.sort((a,b) => a-b) const val = tmp[0] arr.splice(arr.indexOf(val),1) return arr } sort를 통해 제일 작은 수를 제거했다. 그런데 sort는 기본적으로 배열에 직접적으로 .. 더보기
[프로그래머스] level1. 직사각형 별찍기 ( javascript) 문제 이 문제에는 표준 입력으로 두 개의 정수 n과 m이 주어집니다. 별(*) 문자를 이용해 가로의 길이가 n, 세로의 길이가 m인 직사각형 형태를 출력해보세요. 나의 풀이 process.stdin.setEncoding(&#39;utf8&#39;); process.stdin.on(&#39;data&#39;, data => { const n = data.split(" "); const a = Number(n[0]), b = Number(n[1]); let tmp = "" for(let i =0;i < a ; i++){ tmp += "*" } for(let j =0;j < b ; j++){ console.log(tmp); } }); 다른 이의 정답 process.stdin.setEncoding(&#39;ut.. 더보기
[프로그래머스] level1. 자릿수 더하기 (javascript) 문제 자연수 N이 주어지면, N의 각 자릿수의 합을 구해서 return 하는 solution 함수를 만들어 주세요. 예를들어 N = 123이면 1 + 2 + 3 = 6을 return 하면 됩니다. 의식의 흐름 split을 쓰면 되겠다. -> str에서만 사용 가능하다. -> n이 정수값이다 -> 변환을 어떻게 하지? -> String사용 덧셈을 어떻게 할까? -> reduce함수 사용 -> 현재값이 str값이니까 Number로 다시 정수로 변환해서 더해준다. 초기 코드 function solution(n) { const answer = String(n).split('').reduce((acc,cur)=> acc += Number(cur),0) return answer } 다른이들의 정답 방법1. 문자열 .. 더보기
[프로그래머스] level1. 내적 (javascript) 문제 길이가 같은 두 1차원 정수 배열 a, b가 매개변수로 주어집니다. a와 b의 내적을 return 하도록 solution 함수를 완성해주세요. 이때, a와 b의 내적은 a[0]b[0] + a[1]b[1] + ... + a[n-1]*b[n-1] 입니다. (n은 a, b의 길이) 나의 풀이 새로배운 map이랑 reduce를 활용해보았다 function solution(a, b) { const tmp = a.map((cur,i)=> cur*b[i]) const answer = tmp.reduce((acc,curr)=> acc+curr) return answer; } 다른이들의 풀이 function solution(a, b) { return a.reduce((acc, _, i) => acc += a[i] .. 더보기

반응형