본문 바로가기

코딩테스트166

[ 자바스크립트(JavaScript), Node.js ] 백준 1075 - 나누기 📍 백준 1075 - 나누기 백준 1075 - 나누기 💡 나의 풀이 뒤 두 자리를 가능하면 작게 만들려고 한다는 문장에서 while문을 사용하여 1씩 증가하면서 나누어 떨어지는지 확인하는 로직을 생각했다. 처음 number을 초기화 할 때 형을 string => number로 바꾸는 불 필요한 연산 때문에 코드가 괜히 길어 보여 다른방법을 곰곰이 생각해보니까 number형으로만 계산해도 됐었다. number은 다음과 같은 방법으로도 초기화 할 수 있다. let number = +((("" + n/100) | 0) + "00"); // 불 필요한 연산이 많은 코드 let number2 = parseInt(n/100) * 100 // 가독성이 좋아진 코드 // 나의 코드 const fs = require(".. 2021. 8. 4.
[ 자바스크립트(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.