본문 바로가기

반응형

level1

[프로그래머스] 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 = ''; let count = -1; const month = [31,29,31,30,31,30,31,31,30,31,30,31] const date = ['FRI','SAT','SUN',&.. 더보기
[프로그래머스] 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() 메서드는 배열 내의 모든 요소 각각에 대하여 주어진 함수를 호출한 결과를 모아 새로운 배열을 반환합니다. 더보기
[프로그래머스] level1. 문자열 내 p와 y의 개수 (javascript) 문제 대문자와 소문자가 섞여있는 문자열 s가 주어집니다. s에 'p'의 개수와 'y'의 개수를 비교해 같으면 True, 다르면 False를 return 하는 solution를 완성하세요. 'p', 'y' 모두 하나도 없는 경우는 항상 True를 리턴합니다. 단, 개수를 비교할 때 대문자와 소문자는 구별하지 않습니다. 예를 들어 s가 "pPoooyY"면 true를 return하고 "Pyy"라면 false를 return합니다. 나의 코드 단순하게 전체를 소문자로 만들고, for문을 돌려서 p와y의 갯수를 카운트 했다. function solution(s){ let countP = 0; let countY = 0; const answer = s.toLowerCase() for ( let i =0 ; i < a.. 더보기
[프로그래머스] level1. 문자열 내 마음대로 정렬하기(javascript) 문제 문자열로 구성된 리스트 strings와, 정수 n이 주어졌을 때, 각 문자열의 인덱스 n번째 글자를 기준으로 오름차순 정렬하려 합니다. 예를 들어 strings가 ["sun", "bed", "car"]이고 n이 1이면 각 단어의 인덱스 1의 문자 "u", "e", "a"로 strings를 정렬합니다. 제한 조건 strings는 길이 1 이상, 50이하인 배열입니다. strings의 원소는 소문자 알파벳으로 이루어져 있습니다. strings의 원소는 길이 1 이상, 100이하인 문자열입니다. 모든 strings의 원소의 길이는 n보다 큽니다. 인덱스 1의 문자가 같은 문자열이 여럿 일 경우, 사전순으로 앞선 문자열이 앞쪽에 위치합니다. 의식의 흐름 tmp_arr와 tmp_arr1라는 배열을 만들어서 .. 더보기

반응형