알고리즘 정리(JS) -1일차

KIP·2022년 6월 13일
0

사실 1일차는 아니고.. 아직 코테수준이 초보자기 때문에 앞으로는 고민했던 함수들과 알고리즘에 대해 유연한 사고를 위해 메모

연산자(%)

사실 가장 쉬워보이는 것들인데 문제로 만나면 고민을 하게되는 것들
%의 활용도는 다양한데, 나머지는 어떤 배열의 길이에 대해서 반복적인 수행을 도와줄 수 있다. 예를들어

const list = [1,2,3,4,5,6,7]
const arr = [1,2,3,4,5]
for(let i =0 ; i < list.length ; i ++){
	 console.log(arr[i]) // arr[5] === undefined   
    }

를 가정한다면, list는 7갠데 arr는 5개의 배열을 가지고 있다. for문 안에서 6번째 반복을 시작한다면 arr는 undefined가 반환된다. arr가 1,2,3,4,5의 패턴으로 무한하게 반복한다면, 이런 식의 사용이 가능하다.

for(let i =0 ; i < list.length ; i ++){
	 console.log(arr[i % arr.length])  // arr[5]= arr[0]
    }  

Math함수

평소 프로젝트할 때는 크게 쓰지지 않는 함수인데, 알고리즘에서 자주 보게되는 것 같다.
메서드가 굉장히 많지만, 내가 알고리즘에서 다뤘던 메서드는 이정도로 보인다.
https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Math

Math.random()
0과 1 사이의 난수를 반환합니다.
Math.round(x)
숫자에서 가장 가까운 정수를 반환합니다.
Math.max([x[, y[, …]]])
0개 이상의 인수에서 제일 큰 수를 반환합니다.
Math.min([x[, y[, …]]])
0개 이상의 인수에서 제일 작은 수를 반환합니다.
Math.floor(x)
인수보다 작거나 같은 수 중에서 가장 큰 정수를 반환합니다.
Math.ceil(x)
인수보다 크거나 같은 수 중에서 가장 작은 정수를 반환합니다.
Math.abs(x)
숫자의 절댓값을 반환합니다.
replace의 이용

parseInt vs Number

parseInt와 Number의 차이(똑같은 문자열 기준)
시간복잡도에서 차이가 난다고 해서 비교를 했는데, 연산의 속도는 차이가 없다.
이 테스트에서 몇 개의 숫자를 사용한지 모르기 때문에 확실치는 않다.

  • parseInt사용시(2번째 파라미터는 안준 상태),
  • 2번째 파라미터에 10(10진수)을 넣은 상태

Number사용시,

0개의 댓글