JavaScript 105

프로그래머스 원소들의 곱과 합 JS ( reduce(), if문 )

문제 설명 정수가 담긴 리스트 num_list가 주어질 때, 모든 원소들의 곱이 모든 원소들의 합의 제곱보다 작으면 1을 크면 0을 return하도록 solution 함수를 완성해주세요. ✅ 내 코드 function solution(num_list) { let times = num_list.reduce((acc,cur) => acc*cur) let sum2 = num_list.reduce((acc,cur) => acc+cur)**2 if(times < sum2) { return 1 } else { return 0 } } 🙋‍♀️ 내 생각 일단 문제를 읽고, 결과값 두개를 비교하기 이전에 먼저 모든 원소들의 곱과 합의 제곱을 구해야겠다고 생각했다. 그래서 이런 계산에 가장 적절하다고 생각하는 reduce(..

프로그래머스 수 조작하기1 JS ( for문, if문 / reduce() )

문제 설명 정수 n과 문자열 control이 주어집니다. control은 "w", "a", "s", "d"의 4개의 문자로 이루어져 있으며, control의 앞에서부터 순서대로 문자에 따라 n의 값을 바꿉니다. "w" : n이 1 커집니다. "s" : n이 1 작아집니다. "d" : n이 10 커집니다. "a" : n이 10 작아집니다. 위 규칙에 따라 n을 바꿨을 때 가장 마지막에 나오는 n의 값을 return 하는 solution 함수를 완성해 주세요. ✅ 내 코드 function solution(n, control) { for(i=0; i n + 1, s: (n) => n - 1, d: (n) => n + 10, a: (n) => n - 10, }; function solution(n, contro..

프로그래머스 카운트다운 JS ( for문,push() / Array(),fill(),map() )

문제 설명 정수 start와 end가 주어질 때, start에서 end까지 1씩 감소하는 수들을 차례로 담은 리스트를 return하도록 solution 함수를 완성해주세요. ✅ 내 코드 function solution(start, end) { let list = []; for (i = start; i >= end; i--) { list.push(i); } return list; } 🙋‍♀️ 내 생각 -1씩을 빼줘야하기 때문에 for문을 사용했다. 초기값i를 10으로 설정하고 for문을 돌면서 -1을 해준다. i가 end가 될때까지 반복하고 그 값들을 push를 이용해서 list에 담는다. 💻 내가 사용한 메서드 for문: for 반복문은 어떤 특정한 조건이 거짓으로 판별될 때까지 반복 for ([초기문]..

프로그래머스 문자열의 앞의 n글자 JS ( slice() )

문제설명 문자열 my_string과 정수 n이 매개변수로 주어질 때, my_string의 앞의 n글자로 이루어진 문자열을 return 하는 solution 함수를 작성해 주세요. ✅ 내 코드 function solution(my_string, n) { return my_string.slice(0,n) } 🙋‍♀️ 내 생각 어떤 배열의 앞의 n글자라는 것은 배열의 0번째부터 시작해서 n-1번째까지를 의미한다. 이 문제를 풀면서 중요하다고 느낀 2가지는 1. 앞의 n글자라는 것이 배열로 들어가면 n까지가 아니라, n-1번째까지의 인덱스를 포함한다는것 2. slice(begin, end) end는 미포함하는 특성이 있다. 이렇게 2가지이다. 그래서 slice(0,n)까지라고 적어줘도 n이 미포함되기 때문에 답..

프로그래머스 숫자 문자열과 영단어 JS ( replace() ) - [2021 카카오 채용연계형 인턴십]

문제 설명 네오와 프로도가 숫자놀이를 하고 있습니다. 네오가 프로도에게 숫자를 건넬 때 일부 자릿수를 영단어로 바꾼 카드를 건네주면 프로도는 원래 숫자를 찾는 게임입니다. 다음은 숫자의 일부 자릿수를 영단어로 바꾸는 예시입니다. 1478 → "one4seveneight" 234567 → "23four5six7" 10203 → "1zerotwozero3" 이렇게 숫자의 일부 자릿수가 영단어로 바뀌어졌거나, 혹은 바뀌지 않고 그대로인 문자열 s가 매개변수로 주어집니다. s가 의미하는 원래 숫자를 return 하도록 solution 함수를 완성해주세요. ✅ 내 코드 function solution(s) { s = s.replace(/zero/gi, 0); s = s.replace(/one/gi, 1); s =..

프로그래머스 문자열 정수의 합 JS ( map(), reduce() )

문제 설명 한 자리 정수로 이루어진 문자열 num_str이 주어질 때, 각 자리수의 합을 return하도록 solution 함수를 완성해주세요. ✅ 내 코드 function solution(num_str) { return [...num_str].map(Number).reduce((a,b) => a+b, 0) } 🙋‍♀️ 내 생각 문제를 보자마자 바로 reduce가 생각났다. reduce는 배열에 사용하는 것이기 때문에 일단은 문자열을 배열로 바꿔주는것을 하였다. 내가 문자열을 배열로 바꿀때 사용하는 2가지 방법이 있다. (다른 방법들도 있을수 있음 ㅎㅎ 내가 자주쓰는 방법!!) 1. [...] 2. split("") 이 2가지 방법을 이용하면 문자열을 배열로 바꿀 수 있다. 물론 단순히 문자열을 배열로만..

프로그래머스 글자 이어 붙여 문자열 만들기 JS ( map(),join() )

문제 설명 문자열 my_string과 정수 배열 index_list가 매개변수로 주어집니다. my_string의 index_list의 원소들에 해당하는 인덱스의 글자들을 순서대로 이어 붙인 문자열을 return 하는 solution 함수를 작성해 주세요. ✅ 내 코드 function solution(my_string, index_list) { const newList =[] index_list.map(a => newList.push(my_string[a])) return newList.join("") } 🙋‍♀️ 내 생각 배열의 각각의 값들을 인덱스로 이용해야 하기 때문에 문제를 보자마자 바로 map()을 떠올렸다. 그래서 map()을 통해 배열을 돌면서 그 값들을 인덱스로 받아오는 작업을 해야겠다고 생..

프로그래머스 공백으로 구분하기1 JS ( split() )

문제설명 단어가 공백 한 개로 구분되어 있는 문자열 my_string이 매개변수로 주어질 때, my_string에 나온 단어를 앞에서부터 순서대로 담은 문자열 배열을 return 하는 solution 함수를 작성해 주세요. ✅ 내 코드 function solution(my_string) { return my_string.split(" ") } 💻 내가 이용한 메서드 split(): String 객체를 지정한 구분자를 이용하여 여러 개의 문자열로 나눈다. String.split() split() split(separator) split(separator, limit) seperator를 인자로해서 어느지점을 기준으로 나눌지를 정할수있다. 또한 limit을 통해서 개수도 제한할 수 있다. 반환값: 주어진 문..

프로그래머스 부분 문자열 JS ( includes() )

문제설명 어떤 문자열 A가 다른 문자열 B안에 속하면 A를 B의 부분 문자열이라고 합니다. 예를 들어 문자열 "abc"는 문자열 "aabcc"의 부분 문자열입니다. 문자열 str1과 str2가 주어질 때, str1이 str2의 부분 문자열이라면 1을 부분 문자열이 아니라면 0을 return하도록 solution 함수를 완성해주세요. ✅ 내 코드 function solution(str1, str2) { if (str2.includes(str1)) { return 1; } else { return 0; } } 🙋‍♀️ 내 생각 문제를 보자마자 includes메서드를 사용하면 쉽게 풀수있을것 같았는데 String에도 includes를 사용할 수 있나, 아니면 Array에만 사용할 수 있나 조금 헷갈려서 찾아보..

프로그래머스 마지막 두원소 JS ( if문 / reverse(), const )

문제설명 정수 리스트 num_list가 주어질 때, 마지막 원소가 그전 원소보다 크면 마지막 원소에서 그전 원소를 뺀 값을 마지막 원소가 그전 원소보다 크지 않다면 마지막 원소를 두 배한 값을 추가하여 return하도록 solution 함수를 완성해주세요 ✅ 내 코드 function solution(num_list) { let last =num_list[num_list.length-1] let last2 = num_list[num_list.length-2] if(last > last2) { num_list.push(last-last2) } else { num_list.push(last*2) } return num_list } 🙋‍♀️ 내 생각 배열의 인덱스를 이용해서 문제를 풀어야겠다고 생각했다. 배열은..