본문 바로가기

메서드

배열에서 문자열 요소들을 오름차순 정렬하면 대문자부터 나온다. 알고리즘 문제풀이 중 기억하고 싶은 부분이 있어 포스팅한다. 자세한 문제는 아래 링크와 같다. (프로그래머스) https://school.programmers.co.kr/learn/courses/30/lessons/12917 기억할 점 : 배열에서 문자열 요소들을 sort() 메서드로 오름차순 정렬하면 대문자부터 나온다. 이걸 몰라서 풀이가 엄청나게 돌아서 갔다. sort() 만 하면 알아서 대문자가 앞에 오고 그걸 reverse() 하면 끝나는 문제였다. 그런데 나는 sort 메서드를 쓰면서도 대소문자를 구분해 배열하는 코드를 굳이 만들어 넣어 줬다. 아래와 같다. function solution(s) { function isUpper(strValue) { let firstStrValue = strVa.. 더보기
같은 숫자는 싫어 ! 알고리즘 자세한 문제는 아래 프로그래머스 링크 참조바란다. https://school.programmers.co.kr/learn/courses/30/lessons/12906 나의 풀이는 아래와 같다. function solution(arr) { var answer = [] arr.map((_, i)=>{if (arr[i]!==arr[i-1]) { answer.push(arr[i]) } }); return answer } arr = [4,4,4,3,3] console.log(solution(arr)) 풀면서 중요했던 포인트는 map() 메서드가 arr을 돌면서 이전 인덱스 요소와 값이 다른 요소만 var answer [] 배열에 넣는다는 것이다. 굳이 빈 배열을 하나 만들것도 없이 그냥 arr에다 필터를 써서 이전.. 더보기
자연수가 하샤드 수인지 판별하는 알고리즘 문제는 역시 제목 그대로이다. 자세한 문제는 아래와 같다. https://school.programmers.co.kr/learn/courses/30/lessons/12947 나의 답안은 아래와 같다. function solution(x) { a = x.toString().split('').map(Number).reduce((acc, cur)=>acc+cur) return x % a===0 ? true : false; } x = 18 console.log(solution(x)) 이번 문제는 주차하고 집에 돌아오면서 생각해 보았는데 잘 떠올라 줘서 감사하다. 여러 메서드를 섞어 쓰게 되었는데 느낀 점은, 메서드를 잘 알면 정말 편하리라는 점이다. 복잡한 코드를 4분의1도 안되게 줄여 주고, 메서드 이름 덕분.. 더보기