본문 바로가기

반응형

프로그래머스

[프로그래머스] 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] .. 더보기
[프로그래머스] level1. 크레인 인형뽑기 게임 ( javascript) 문제 게임개발자인 "죠르디"는 크레인 인형뽑기 기계를 모바일 게임으로 만들려고 합니다. "죠르디"는 게임의 재미를 높이기 위해 화면 구성과 규칙을 다음과 같이 게임 로직에 반영하려고 합니다. 게임 화면은 "1 x 1" 크기의 칸들로 이루어진 "N x N" 크기의 정사각 격자이며 위쪽에는 크레인이 있고 오른쪽에는 바구니가 있습니다. (위 그림은 "5 x 5" 크기의 예시입니다). 각 격자 칸에는 다양한 인형이 들어 있으며 인형이 없는 칸은 빈칸입니다. 모든 인형은 "1 x 1" 크기의 격자 한 칸을 차지하며 격자의 가장 아래 칸부터 차곡차곡 쌓여 있습니다. 게임 사용자는 크레인을 좌우로 움직여서 멈춘 위치에서 가장 위에 있는 인형을 집어 올릴 수 있습니다. 집어 올린 인형은 바구니에 쌓이게 되는 데, 이때.. 더보기
[프로그래머스] level1. 2016년 (javascript) 문제 2016년 1월 1일은 금요일입니다. 2016년 a월 b일은 무슨 요일일까요? 두 수 a ,b를 입력받아 2016년 a월 b일이 무슨 요일인지 리턴하는 함수, solution을 완성하세요. 요일의 이름은 일요일부터 토요일까지 각각 SUN,MON,TUE,WED,THU,FRI,SAT 입니다. 예를 들어 a=5, b=24라면 5월 24일은 화요일이므로 문자열 "TUE"를 반환하세요. 나의 풀이 function solution(a, b) { var answer = &#39;&#39;; let count = -1; const month = [31,29,31,30,31,30,31,31,30,31,30,31] const date = [&#39;FRI&#39;,&#39;SAT&#39;,&#39;SUN&#39;,&.. 더보기
[프로그래머스] level1. 가운데 글자 가져오기 (javascript) 문제 단어 s의 가운데 글자를 반환하는 함수, solution을 만들어 보세요. 단어의 길이가 짝수라면 가운데 두글자를 반환하면 됩니다. 나의 풀이 function solution(s) { return (s.length % 2 == 0) ? s.slice(s.length/2-1,(s.length/2)+1) : s[parseInt(s.length/2)] } slice() 메서드는 어떤 배열의 begin부터 end까지(end 미포함)에 대한 얕은 복사본을 새로운 배열 객체로 반환합니다. 원본 배열은 바뀌지 않습니다. 다른이의 풀이 function solution(s) { const mid = Math.floor(s.length/2); return s.length %2 === 1 ? s[mid] : s[mid.. 더보기
[프로그래머스] level1. 행렬의 덧셈 (javascript) 문제 행렬의 덧셈은 행과 열의 크기가 같은 두 행렬의 같은 행, 같은 열의 값을 서로 더한 결과가 됩니다. 2개의 행렬 arr1과 arr2를 입력받아, 행렬 덧셈의 결과를 반환하는 함수, solution을 완성해주세요. 나의 풀이 배열을 하나 선언해서 덧셈한 값을 순차적으로 저장하였다. function solution(arr1, arr2) { var answer = []; for(let i=0; i b + B[i][j])); } map함수를 2번 사용해서 처리하였다. map의 첫번째 값은 element, 두번째값은 index 임을 이용하면 된다. 참조 map : map() 메서드는 배열 내의 모든 요소 각각에 대하여 주어진 함수를 호출한 결과를 모아 새로운 배열을 반환합니다. 더보기

반응형