[JS] JavaScript에서 var, let, const
·
CS
JavaScript에서 var, let, const 차이점 JavaScript에서 변수를 선언할 때 var, let, const 세 가지 키워드를 사용할 수 있습니다.이들은 각각 다른 특징을 가지며, 올바르게 사용해야 코드의 안정성과 유지보수성이 향상됩니다.var, let, const의 차이점과 특징을 정리하고, 언제 어떤 키워드를 사용해야 하는지 정리했습니다.1. var의 특징과 문제점특징함수 스코프(Function Scope): var로 선언된 변수는 함수 내부에서만 유효함호이스팅(Hoisting): 선언이 코드의 최상단으로 끌어올려짐중복 선언 가능: 같은 이름의 변수를 다시 선언해도 에러가 발생하지 않음문제점블록 스코프를 지원하지 않아, 의도치 않은 변수 값 변경이 발생할 수 있음중복 선언이 가능해..
[백준/Python] 1012번 : 유기농 배추
·
알고리즘/백준
https://www.acmicpc.net/problem/1012   1. 인접한 다른 배추로 이동 , 상하좌우 -> dfs or bfs2. 연결 정보는 2차원 배열에 저장 3. 배추가 심어져 있는 땅 dfs 다 돌면 answer += 1 해준다.4. 상하좌우 탐색할 때 ny, nx 범위설정 꼭 해줘야한다. 5. visited 배열 대신 방문하고 나서 1을 0으로 바꿔주었다. (visited 설정해줘도 됨)  import syssys.setrecursionlimit(10**6)input = sys.stdin.readlinedef dfs(y, x): baechu[y][x] = 0 for i in range(4): ny = y + dy[i] nx = x + dx[i] ..
[백준/Python] 11725번 : 트리의 부모 찾기
·
알고리즘/백준
https://www.acmicpc.net/problem/11725    1. 트리, 노드의 부모 -> 그래프 문제 (dfs or bfs)2. 노드 정보 -> 리스트 배열에 저장 ( N이 100,000 까지 이므로 2차원 배열로 하면 너무 커지기 때문)3. 그래프 정보 저장 -> append 해줌 4. dfs 호출 (트리의 루트가 1이므로 dfs(1) 호출) 5. answer 배열 출력 6. answer는 dfs 함수에서 재귀 호출하기 전 answer[i] = idx로 저장해준다.   import syssys.setrecursionlimit(10**6)input = sys.stdin.readlinedef dfs(idx): visited[idx] = 1 for i in graph[idx]: ..
[백준/Python] 24480번 : 알고리즘 수업 - 깊이 우선 탐색 2
·
알고리즘/백준
https://www.acmicpc.net/problem/24480  깊이우선탐색1 문제와 정렬 방식만 다를 뿐 똑같다. 1. dfs, 정점, 간선, 무방향 그래프 -> dfs !2. 그래프 연결 정보를 빈 리스트에 담기 ex. [[], [4, 2], [1, 3, 4], [2, 4], [1, 2, 3], []] -> 1번 정점과 이어진 정점은 4와 2 / 2번 정점과 이어진 정점은 1, 3, 4 .. 3. vistied 배열로 방문표시 4. 내림차순 ( reverse = True )5. 방문 순서를 담아줄 answer 배열 생성   import sys sys.setrecursionlimit(10 ** 6)input = sys.stdin.readline 이 코드는 꼭 써주기로 하자 ... 안쓰니 재귀가 너..
[백준/Python] 24479번 : 알고리즘 수업 - 깊이 우선 탐색 1
·
알고리즘/백준
https://www.acmicpc.net/problem/24479  정점, 간선, 무방향 그래프, 노드의 방문 순서 -> 그래프 문제 (dfs or bfs)  N이 100,000번 까지 가능하기 때문에 2차원 배열로 만드는 건 비효율적임 따라서 [] 빈 리스트를 만들고 각 정점과 연결된 정점을 넣어주는 방법으로 그래프 표시를 했다.  dfs 1. 방문 표시를 해줌 2. answer 배열에 순서(order)를 표시해줌3. order +1 해줌4. 그래프 리스트를 돌면서 방문하지 않았다면 dfs 재귀 import syssys.setrecursionlimit(10**6)input = sys.stdin.readlinedef dfs(idx): global order visited[idx] = 1 ..
[TypeScript] 타입 계층도 및 기본 세팅
·
TypeScript
기본 타입 = 타입스크립트가 자체적으로 제공하는 타입 - 타입 계층도  - 기본 타입들은 서로 부모 자식 관계를 이루며 계층을 형성 기본 세팅- 폴더 생성 - vscode 로 열기 - 터미널을 켜고 Node.js 패키지를 초기화 (패키지 정보는 기본값으로 설정)> npm init  - @types/node 패키지를 설치> npm i @types/node  컴파일러 옵션 설정 - tsconfig.json 파일생성# 옵션 추가{ "compilerOptions": { "target": "ESNext", "module": "ESNext", "outDir": "dist", "strict": true, "moduleDetection": "force" }, "include": ["s..
[백준/Python] 11724번 : 연결 요소의 개수
·
알고리즘/백준
https://www.acmicpc.net/problem/11724 연결 요소의 개수 -> 그래프, dfs or bfs 1. 입력 및 초기화 2. 그래프에 연결 정보 채우기 3. dfs 호출 4. 출력 # 재귀를 100만번까지 돌도록 해주는 코드.. # 오류가 안나게 항상 추가해주자 import syssys.setrecursionlimit(10**6)input = sys.stdin.readlinedef dfs(idx): visited[idx] = 1 for i in range(1, N + 1): if visited[i] == 0 and graph[idx][i] == 1: dfs(i)# 입력 및 초기화 N, M = map(int, input().split())gr..
[백준/Python] 2602번 : 바이러스
·
알고리즘/백준
https://www.acmicpc.net/problem/2606   네트워크 상에서 연결되어 있는 모든 컴퓨터 -> dfs or bfs / 탐색 문제1. 입력 및 그래프, 방문배열 2. 그래프에 연결 정보 채우기 3. dfs 호출4. 출력  def dfs(idx): global cnt visited[idx] = 1 cnt += 1 for i in range(1, N + 1): if graph[idx][i] == 1 and visited[i] == 0: dfs(i)# 입력값N = int(input())M = int(input())graph = [[0] * (N + 1) for _ in range(N + 1)]cnt = 0visited = [0] * ..
[백준/Python] 1260번 : DFS와 BFS
·
알고리즘/백준
https://www.acmicpc.net/problem/1260     # 성공코드 1. 방문 배열 만들어주기 (bfs, dfs 따로 만들어주었다)2. 방문 노드 표시할 그래프 표 만들어주기 (ex. (1, 2) (2, 1) 모두 1로 표시 )3. dfs 함수 구현 4. bfs 함수 구현def dfs(i): visited1[i] = 1 print(i, end = " ") for next in range(1, N + 1): if visited1[next] == 0 and graph[i][next] == 1: // 방문을 안했고 그래프가 1일때 dfs(next) def bfs(i): queue = [] queue.append(i) visite..
[TypeScript] 타입스크립트 개론
·
TypeScript
타입스크립트 = 자바스크립트의 확장판자바스크립트를 더 안전하게 사용할 수 있도록 "타입 관련 기능들을 추가한" 언어 JavaScript# 자바스크립트 let a = 1; let b = 1;console.log(a + b); TypeScript# 타입스크립트 let a: number = 1;let b: number = 2;console.log(a + b); 자바스크립트에서 타입을 정의하는 문법을 추가한 것이 타입스크립트이다!   JavaScript유연한 문법 버그 발생 가능성 높음 자유로움  TypeScript자바스크립트의 유연함이 프로그램의 안정성을 떨어뜨리는 단점자바스크립트의 기존 문법과 매력은 유지 + 안정성 추가 타입에 관련된 여러가지 기능을 추가한 타입스크립트 등장 타입시스템  정적 타입 시스템코..