전체 글 111

TIL 49일차_Set 객체

Set객체에 대해 처음알았다!🤩 Set객체는 유일한 값을 저장하는 객체이다. 즉, 하나의 Set 내부의 어떠한 값이든 그 Set 콜렉션 내에서 유일한 값이다. 또한, Set은 객체이지만 키를 갖지 않는다. 요소값만을 갖는다!! Set 객체를 배열로 변환하는 3가지 방법 Array.from() const set = new Set([1, 2, 3]); const arr = Array.from(set); Spread Syntax const set = new Set([1, 2, 3]); const arr = [...set] forEach const set = new Set([1, 2, 3]); const arr = []; set.forEach((element) => { arr.push(element); }) S..

TIL 48일차_forEach메소드와 루프제어문

배열의 모든 요소를 함수에 입력하여 가공할 때 쓰는 forEach 메소드! 오늘 forEach메소드를 쓰다가 예외처리를 해줘야했는데 어떻게 처리해야할지 고민했다. 나는 forEach 메소드는 for루프안에서 각 요소를 함수에 넣어 실행시킨다고 생각했기때문에, for문의 continue를 써야할지, 함수의 return으로 함수를 중단시켜야할지 고민했는데, 결론부터 말하면 return을 쓰면 된다! forEach 메소드 내부에서의 예외처리 생각해보면 쉬운문제다.😋 forEach는 이미 내장되어있는 함수이고, 우리가 사용할 때 조작하는 내용은, 콜백함수안의 내용이다. 따라서 함수에 예외처리를 할때와 마찬가지로, return을 사용해주면 된다. let array = [1,2,3,4]; array.forEach(..

TIL 47일차_자료구조: 그래프와 트리

흔히 자료구조 중 스택,큐,그래프,트리 이 4가지가 가장 기본이 되고, 각종 테스트나 입사 면접문제로도 자주 출제된다. 왜냐? 중요하니까! 이들이 중요한 이유는 현실의 대다수, 또는 모든 것을 표현하는 개념이기 때문이다. 오늘은 그래프와 트리에 대해서 알아보자. 그래프와 트리? 그래프 그래프는 개체간의 "관계" 를 다룬다. 현실에서도 수많은 개체가 상호작용하는데 이들이 연결되어 있을 때, 이 개체의 노드를 엣지로 이을 수 있고, 이것이 곧 그래프이다. 트리 트리는 계층을 표현한다. 정점인 루트노드부터 시작해서 말단인 리프노드까지 분기한다. 그래프와 트리 그래프와 트리는 분명 비슷하다. 왜냐하면, 트리의 부모노드와 자식노드의 계층관계도, 결국 그래프에서 말하는 "관계" 라고 할 수 있기 때문이다. 그렇다면..

TIL 46일차_알고리즘문제_잘린 사각형의 개수

프로그래머스 문제중 "멀쩡한 사각형" 문제의 내용이다. 너비가w 높이가h인 사각형을 대각선으로 접었을 때, 잘린 사각형의 개수를 구하면 해결할 수 있는 문제다. 잘린 사각형의 개수 w가 8, h가12인 사각형이 있다. 이때, 직선이 지나는 점의 개수(빨간 사각형의 개수)는 4개이다. 이는 8과 12의 최대공약수이다. 최대공약수가 1일때를 생각해보자. w가 2, h가 3일 때를 한번 살펴보자. 대각선이 점에 도착할때까지, 가로의 개수 + 세로의 개수만큼 사각형이 갈라진다. 다만, 위의그림에서 대각선이 점에서 시작할 때, 잘리는 사각형이 중복되므로 1을 빼줘야한다. 정리하면, 최대공약수가 1일때 잘라지는 사각형의 개수는 w+h-1이다. 그렇다면 최대공약수가 g일때는?? 앞서 말했듯이, 중복되는 사각형은 대각..

TIL 45일차_알고리즘_이진탐색트리

이진탐색트리 단순탐색의 시간복잡도는 O(N), 이진탐색의 시간복잡도는 O(logN)이다. 따라서 N의 크기가 커질수록 이차이는 커진다. 예를들어 40억개를 탐색하면 단순탐색은 40억번을 계산해야하고 이진탐색은 32번만 계산하면된다. 배열에서 특정숫자를 찾는 이진탐색은 다음과같다. function bst(list,item){ let min = 0 let max = list.length-1; while(min

TIL 44일차_setTimeout의 this와 이를 제어하는 bind메소드

this는 this를 사용한 함수가 어떻게 불리느냐(어디에서 호출되느냐)에 따라 가리키는 값이 달라진다. 따라서 원하는 this를 지정해주기 위한 method가 있는데 바로 call, apply, bind 이다. 이중 call과 apply는 this를 지정해줌과 동시에 함수를 호출하며 bind는 호출하지 않는다는 차이점이 있다. 오늘은 bind를 사용하여 비동기함수인 setTimeout의 this를 제어해 보자. 왜 setTimeout의 this는 요상할까?? setTimeout의 this는 조금은 의도와는 다르게 작동한다. strict모드일 때는 undefined가 호출되고, strict모드가 아닐 때는, 전역객체 (window 혹은 global)가 호출된다. 왜일까?? 이건 이벤트루프,스택,큐와 관련..