[level 1] 나누어 떨어지는 숫자 배열
·
알고리즘/JavaScript
문제 풀이 코드 function solution(arr, divisor) { let answer = arr.filter((item) => item % divisor === 0).sort((a, b) => a - b); return answer.length === 0 ? [-1] : answer; } 풀이 과정 간단히 구현할 수 있었다. filter를 이용해 나누어 떨어지는 요소들만 새로 배열을 생성하고, 해당 배열을 sort 함수를 통해 오름차순으로 정렬했다.
[level 1] 문자열 내 마음대로 정렬하기
·
알고리즘/JavaScript
문제 풀이 코드 // 방법 1. 아스키 코드로 변환하여 계산 function solution(strings, n) { return strings.sort().sort((a, b) => a.charCodeAt(n) - b.charCodeAt(n)); } // 방법 2. localeCompare 메서드 이용 function solution(strings, n) { return strings.sort((a, b) => { return a[n] === b[n] ? a.localeCompare(b) : a[n].localeCompare(b[n]); }); } 풀이 과정 두가지 방법으로 풀었다. 첫번째 방법은 우선 문자열 배열 자체를 오름차순 정렬을 수행하고, 곧바로 다시 sort 함수를 사용하는데, 여기서 문제에..
[level 1] 두 정수 사이의 합
·
알고리즘/JavaScript
문제 풀이 코드 function solution(a, b) { let min = a item + min) .reduce((sum, item) => sum + item, 0); } 풀이 과정 범위의 값을 저장 하기위해 검색을 했다 keys() 함수를 쓰면, 0부터 차례대로 연속된 수를 저장할수 있다! Array의 크기를 두수의 차이 + 1 만큼 지정해주고, a 와 b 중 최솟값을 삼항연산자로 구한다음, map 과 reduce 를 이용해 수의 합을 구했다. 채점 통과가 되긴 했으나, 시간이 좀 오래걸렸다 아무래도 함수를 많이 사용하고 그래서 그런거같다 다른사람의 코드를 참고해야..
[level 1] p와 y의 개수
·
알고리즘/JavaScript
문제 풀이 코드 function solution(s) { let sLower = s.toLowerCase().split(''); let pCount = sLower.filter((item) => item === 'p').length; let yCount = sLower.filter((item) => item === 'y').length; return pCount === yCount; } 풀이 과정 우선, 문자열내의 모든 요소를 소문자로 변경해주고 해당 문자열을 배열로 만들었다. ( toLowerCase, split ) 그리고 나서 filter 함수를 통해 p 와 y 만 저장한 배열을 각각 생성하고, 해당 배열의 길이를 각각의 변수에 저장했다. 그리고 그냥 같은지 비교한 값을 반환시켰다 이거 제출하고 나서..
[level 1] 문자열 내림차순으로 배치하기
·
알고리즘/JavaScript
문제 풀이 코드 function solution(s) { return s.split('').sort().reverse().join(''); } 풀이 과정 이제 조금씩 자바스크립트 고차함수들에 익숙해지는것을 느낀다! split 으로 각 글자를 나누어 배열로 만들고, sort 로 오름차순 정렬! reverse 로 순서를 뒤집어 내림차순 정렬! join 으로 배열을 문자열로!