내일배움캠프

230531 자바스크립트 알고리즘 문제 해결을 위한 방법

Neda 2023. 5. 31. 20:52

230531 자바스크립트 알고리즘 문제 해결을 위한 방법

 

1. 앞의 대상이 null이나 undefined일 때 undefined 반환

obj?.value

2. 앞의 대상이 null이나 undefined일 때 오른쪽 연산자 사용

obj ?? '없습니다'

3. 나눗셈 몫과 나머지 구하기

Math.floor(num1/num2)
num1%num2

4. 문자열을 리스트로

str.split('')

5. 리스트를 문자열로

arr.join('')

6. 길이가 같은 두 배열의 공통 원소 개수

arr1.filter(x=> arr2.includes(x)).length

7. 배열 모든 원소의 합과 곱

arr1.reduce((a,c)=>a+c)
arr1.reduce((a,c)=>a*c)

8. 배열에서 최대값 찾기

array.reduce((a,c)=> a > c ? a : c)

9. 해당 문자열이 처음 또는 마지막에 등장하는 인덱스 찾기

str.indexOf('term')
str.lastIndexOf('term')

10. 배열에서 홀수, 짝수 개수 구하기

arr.reduce((a,c) ⇒ (c%2 ===0 ? a[0]++ : a[1]++, a),[0,0])

11. 배열 원소 서로 바꾸기

[arr[0],arr[1]] = [arr[1],arr[0]]

12. 아스키 코드를 문자로, 문자를 아스키코드로

String.fromCharCode(97) // 'a'
String.fromCharCode(65) // 'A'
'a'.charCodeAt() // 97
'A'.harCodeAt() // 65

13. 주어진 수가 2의 거듭제곤인지 판별

Math.log2(num1)%1===0

14. 2차원 배열에서 원소 바로 꺼내기

for(const [num1,num2] of arr){

}

15. 문자열을 특정개수(3개)씩 끊어서 배열로 만들기

.(마침표)는 모든 문자와 매칭

{}는 반복

g는  문자열 내 모든 패턴 검색

"abcabcabcab".match(new RegExp(".{1,3}", "g")) // ["abc", "abc", "abc", "ab"]

 

프로그래머스 문제를 풀기 시작하면서 자주 사용하거나 유용하다고 생각되는 해결 방법은 적어두었다가 그때그때 까먹지 않게 사용하려고 한다. 자바스크립트는  내장 메서드가 많아 활용도 중요한 것 같다.