TIL_211107

낭만개발자·2021년 11월 7일
0

TIL

목록 보기
2/2

알고리즘

챕터 4-2 소수 구하는 문제

소수 문제에서 소수 구하는 로직을 짤때 for문 돌릴때, for문 돌아가는 범위를 i< Math.sqrt() 로 제곱근까지만 돌리면 된다. 16의 약수를 1,2,4,8,16 이라 할때 16을 제외하면 약수가 1,2,4 4x2 인데 16의 제곱근 4까지만 향하게 되면 이후 약수는 제곱근 이하의 약수들끼리 곱으로 형성 되므로, 결국 for문은 제곱근 이상으로 돌릴 필요가 없게 된다.

참고 : https://jm-park.github.io/algorithm/2018/08/06/Prime-Number(%EC%86%8C%EC%88%98)-%ED%8C%90%EB%B3%84%EB%B2%95-%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98.html

정렬

arr. sort function 사용시 arr.sort()의 핵심은 2가지가 있는데,
1. 파라미터 a,b에서 a는 next를, b는 prev를 의미하는 것과
2. return 값이 -1일 때 값 변동이 있다
는 것이다.

즉 흔히 arr.sort((a,b) => a - b)) 오름차순
arr.sort((a,b) => b - a) 내림차순으로 기억하는데,

sort함수에서
sort(a,b => a - b)는 sort((next, prev) => next - prev) 라는 뜻이다.
즉 흔히 생각하는 a가 배열에 첫요소도, b가 둘째 요소인 방식이 아니라,
첫요소를 b로 잡고 다음 요소값을 a로 잡는다.
그래서 콜백함수에서 a-b 즉 두번째 요소 - 첫번째 요소 값이 -1이면 위치이동이 일어난다
는 뜻이므로, 풀어보자면 첫번째 요소 값이 두번째 요소보다 더 크면 위치이동, 전자가 후자보다 더크면 위치이동, 즉 오름차순이 되고
b-a는 첫번째 요소 - 두번째 요소 값이 -1이면 위치이동 이니깐,
후자가 전자 보다 더 크면 위치이동, 즉 내림차순이 된다.

sort는 배열 복사가 아니라 원본 값을 변경한다.

참고 : https://velog.io/@jakeseo_me/Javascript-Sort%ED%95%A8%EC%88%98%EC%97%90-%EB%8C%80%ED%95%9C-%EC%9E%A1%EC%A7%80%EC%8B%9D

ts에서 possibly undefined value 에러 처리하는법 (원문 번역)

https://velog.io/@adguy/TypeScript-possibly-undefined-value-%ED%95%B4%EA%B2%B0-%ED%95%98%EB%8A%94-%EB%B2%95

profile
낭만닥터와 슬의를 보고 저런 개발자가 되어야 겠다고 꿈꿔봅니다.

0개의 댓글