2024년 8월 27일 TIL
오늘 아침에는 특강에서 LinkedList를 이용한
Stack과 Queue의 일부 기능을 구현해봤고
삽입 정렬을 구현해봤다.
Stack의
psuh(value)는
방식으로 마지막에 들어온 Node가
먼저 사용될 수 있게 만들어줬다.
pop()은
방식으로 head가 가리키고 있는
노드를 제거해야 하기 때문에
head가 가리키는 다음 노드를
head가 가리키게 해야했다.
Queue의
Queue는 먼저 들어온 Node가 먼저 나가기 때문에
head가 가리키는 노드를 가져와서
그 노드의 다음 노드를 head가 가리키게 만든 후
반환해야했다.
위와 같은 반복으로 다른 정렬 알고르즘과 비교해서 시간복잡도가
적은 정렬 알고리즘을 만들 수 있었다.
(운이 좋으면 Ω(n), 일반적인 상황에서는 O(n^2))
https://kagan-draca.tistory.com/224
3-3 Challenge
let makeAlbum = (genres, plays) => { let order = new Map(); // 중복 없이 장르 별 // 전체 실행 횟수, 곡 넘버, 곡 별 실행 횟수를 // 저장하기 위해 사용 genres.forEach((element, index) => { if (!order.has(element))
kagan-draca.tistory.com
https://kagan-draca.tistory.com/225
4-2 Challenge 요소를 모두 더한 배열에서 k 번지 값 찾기(flat과 flatMap)
const ArrayAllAdd = array => { return array .reduce((acc, cur) => { // acc 누산 결과를 저장할 변수 // cur 현재 요소 return acc.flatMap( // flat과 map을 합친 기능으로 // 평탄화된
kagan-draca.tistory.com
3-3 Challenge 문제를 바탕으로
자료형을 잘 조합해 복합한 문제를
간단한? 알고리즘으로 풀 수 있었고,
4-2 Challenge 문제를 풀어보면서
flat과 flatMat 기능을 알게 됐다.
(네트워크 시간에 배운 내용은 내일 정리하겠습니다...)