본문 바로가기

Algorithm/프로그래머스(Programmers)50

[ 자바스크립트(JavaScript) ] 프로그래머스 level1 - 가운데 글자 가져오기 📍 프로그래머스 1단계 - 가운데 글자 가져오기 프로그래머스 1단계 - 가운데 글자 가져오기 ⚡️ 나의 풀이 첫 번째는 slice 문을 이용했고, 두 번째는 slice, splice문을 이용했는데 splice는 Array 타입에서만 지원하는 함수여서 split으로 Array로 바꿔주고 적용햇다. 가독성은 첫 번째 코드가 더 좋은 것 같다. 주의할 점은 splice 문을 사용 할 때 end는 포함하지 않는다는 점과 컴퓨터는 index를 0부터 세는 부분이다. // slice function solution(s) { return s.length%2 == 1 ? s[s.length/2 | 0] : s.slice(s.length/2 - 1, s.length/2 + 1) } // slice, splice func.. 2021. 8. 3.
[ 자바스크립트(JavaScript) ] 프로그래머스 level1 - 같은 숫자는 싫어 📍 프로그래머스 1단계 - 같은 숫자는 싫어 프로그래머스 1단계 - 같은 숫자는 싫어 ⚡️ 나의 풀이 맨 마지막 원소를 비교할 때는 idx+1이 없기 때문에 오류가 나지 않을까 하면서 filter를 사용했는데, 마지막 idx+1은 undefined가 반환돼서 비교가 가능했다. 여담으로 !=와 !==의 차이는 형 변환(type casting)이후 비교를 하는지 안 하는지의 차이인데 여기서는 입력 모두 Number형 이기 때문에 !=로 작성해도 된다. // filter function solution(arr){ return arr.filter((item, idx) => item !== arr[idx+1]); } // forEach function solution2(arr, answer = []){ arr.f.. 2021. 8. 3.
[ 자바스크립트(JavaScript) ] 프로그래머스 level1 - 평균 구하기 📍 프로그래머스 1단계 - 평균 구하기 프로그래머스 1단계 - 평균 구하기 ⚡️ 나의 풀이 python과는 다르게 JS에서는 sum 함수가 따로 없어서 reduce 함수를 이용해서 평균을 구했다. reduce는 4개의 인자 누산기(acc), 현재 값(cur), 현재 인덱스(idx), 원본 배열(src)을 가진다. 또, initialValue : callback 함수를 실행할 때, accumulator 의 값( default : arr[0], currentIndex : 1부터 시작, 가능하면 초기값을 입력하는 것을 잊지 말자. // 나의 코드 function solution(arr) { let sumArr = arr.reduce((acc, cur) => { return acc + cur; }); retur.. 2021. 7. 30.
[ 자바스크립트(JavaScript) ] 프로그래머스 level1 - 하샤드 수 📍 프로그래머스 1단계 - 하샤드 수 프로그래머스 1단계 - 하샤드 수 ⚡️ 나의 풀이 number 타입으로 주어진 값의 자릿수를 구할 때 for문을 사용하고, JS의 문자열 특성을 이용해서 구했다. x를 String 형태로 바꾼다. for - of 반복문을 이용해서 tempSum을 누적한다. 이때, JS에서는 문자열 앞에 +를 붙이면 number형으로 바뀐다. 삼항연산자를 이용해서 자릿수로 나누어 떨어지면 true, 나누어 떨어지지 않으면 false를 return한다. function solution(x, tempSum = 0) { for (let digit of String(x)){ tempSum += (+digit) } return (x % tempSum) ? false : true } 2021. 7. 28.
[ 자바스크립트(JavaScript) ] 프로그래머스 level1 - 짝수와 홀수 📍 프로그래머스 1단계 - 짝수와 홀수 프로그래머스 1단계 - 짝수와 홀수 ⚡️ 나의 풀이 조건문을 이용해 if-else로 나타낼 수 있지만, 삼항연산자를 이용해 더욱 간단하게 작성할 수도 있다. // 삼항연산자 function solution(num) { return (num % 2) ? "Odd" : "Even" } // 조건문 function solution(num) { if (num % 2 == 1){ return "Odd" }else{ return "Even" } } 2021. 7. 27.