본문 바로가기

전체 글74

[JS]스코프란? '모던 자바스크립트' 내용을 정리하였습니다. 스코프란? 식별자가 유효한 범위 모든 식별자(변수 이름, 함수 이름, 클래스 이름 등)는 자신이 선언된 위치에 의해 다른 코드가 식별자 자신을 참조할 수 있는 유효 범위가 결정된다. var var1 = 1; // 코드의 가장 바깥 영역에서 선언한 변수 if (true) { var var2 = 2; // 코드 블록 내에서 선언한 변수 if (true) { var var3 = 3; // 중첩된 코드 블록 내에서 선언한 변수 } } function foo() { var var4 = 4; // 함수 내에서 선언한 변수 function bar() { var var5 = 5; // 중첩된 함수 내에서 선언한 변수 } } console.log(var1); // 1 cons.. 2023. 11. 16.
[TS]TypeScript의 추론 해당 포스팅은 '인프런_ 타입스크립트 올인원 : Part1. 기본 문법편' 강의와 '타입스크립트 교과서', '쉽게 시작하는 타입스크립트' 책을 기반으로 학습하여 정리한 내용입니다! 추론이란? 타입스크립트(TypeScript 컴파일러)가 코드를 해석하여 적절한 타입을 정의하는 동작을 의미합니다. const a = '5'; // string const b = 5; // number const c = true; // boolean 변수를 초기화하거나 함수의 파라미터에 기본값을 설정하거나 반환값을 설정했을 때 지정된 값을 기반으로 적당한 타입을 제시하고 정의해 주는 것입니다. ❗제대로 추론하고 있는데 직접 타이핑 하는 것이 더 문제가 될 수 있습니다. ✅ why? const a: string = '5'; a는 .. 2023. 10. 29.
[TS]TypeScript란? (사용 이유/기본 지식/기본 설치) TypeScript란? JavaScript에 타입을 부여한 언어입니다. (JS 확장 언어) TypeScript는 JavaScript와 달리 브라우저에서 실행하려면 파일을 한 번 변환해주어야 하는데 이 변환 과정을 컴파일(complie)이라고 합니다. TypeScript를 배워야하는 이유 1️⃣ 코드의 안정성 안정적이다 ⇒ 에러가 적게 난다. 활성 컴파일 시간 오류 분석 사용시(?) 코드베이스에서 런타임 문제가 훨씬 줄어듭니다. 그러나 JS의 모든 에러를 다 막아주는 것은 아닙니다. 자유도는 줄어듭니다. 2️⃣ 코드 가이드 및 자동완성 개발 생산성이 향상됩니다. 3️⃣ 러닝커브가 낮음 기본 지식 typescript는 최종적으로 javascript로 변환됩니다. 순전한 typescript 코드를 돌릴 수 있.. 2023. 10. 29.
[python]1012_유기농 배추 사용한 자료구조 및 개념 : bfs, dictionary, set 💡 문제풀이 아이디어 및 어려웠던 점 💫 아이디어 1️⃣ 2차원 배열판을 만들 필요없이 배추 위치 입력값들로 바로 확인한다! 2️⃣ 배추 좌표를 키로하고 인덱스를 값으로 저장하는 딕셔너리를 만든다. ⇒ 지금 현재 배추 위치에서 상,하,좌,우에 해당 하는 값들의 인덱스를 빠르게 조회를 하기 위함이다. ✅ 딕셔너리는 해시 테이블을 기반으로 하므로 키를 사용한 값의 조회가 평균 O(1)의 시간 복잡도로 매우 빠르다. 이를 활용하면 특정 (x, y) 좌표가 존재하는지와 그에 해당하는 인덱스를 매우 빠르게 찾을 수 있다. 3️⃣ 배추 딕셔너리의 모든 키(배추 좌표)들을 가지고와 set으로 만든다. ⇒ 지금 현재 배추 위치에서 상,하,좌,우에 해당 .. 2023. 10. 8.
[python]13023_ABCDE 사용한 자료구조 및 개념 : DFS, 백트래킹 💡 문제풀이 아이디어 및 어려웠던 점 💫 아이디어 1️⃣ 5개의 노드가 연속적으로 이루어진 경우가 있으면 1을 출력하는 문제이다. 2️⃣ dfs 재귀를 활용하여 깊이가 4인 경우를 찾는다. dfs에 현재 노드와 깊이를 인자로 넘겨준다! 3️⃣ 깊이가 4인 경우 result값을 1로 바꾸고 return하여 함수를 탈출! 반복문도 break한다! 4️⃣ 끝까지 탐색했는데도 깊이가 4가 되지 않는다면 재탐색을 해야하므로 현재 노드(v)를 False로 바꿔준다. ⇒ 백트래킹! ✅ 백트래킹이란? Promising : 트리 구조를 기반으로 DFS로 깊이 탐색을 진행하면서 각 루트에 대해 조건에 부합하는지 체크한다. Pruning : 해당 트리에서 조건에 맞지않는 노드는.. 2023. 9. 29.
[python]2668_숫자고르기 사용한 자료구조 및 개념 : DFS 💡 문제풀이 아이디어 및 어려웠던 점 💫 아이디어 ❣️ 이 문제는 사이클이 생기는 노드를 찾아내면 되는 문제이다. 1️⃣ arr리스트의 입력값을 받을 때 인덱스와 연결을 맞추기 위해 -1을 해준다. 2️⃣ arr의 각 인덱스는 노드를 나타내며, 그 인덱스에 해당하는 값은 해당 노드에서 다음으로 연결된 노드를 나타내게 된다. 3️⃣ dfs의 인자로 시작노드 2개를 넣는다. (출발점으로 다시 돌아오는지 확인을 위해!) 4️⃣ 현재 순회하는 노드가 시작점으로 다시 되돌아 온다면 사이클이 생기는 것이므로 결과 리스트에 추가한다. 👻 어려웠던 점 🚨 조합을 사용해서 중복제거 값이 0이면 결과 리스트에 추가하는 방법으로 풀었는데 시간 초과가 났다..! 사이클을 만드는 것을 찾으면.. 2023. 9. 27.