전체 글79 [JavaScript] 호이스팅 호이스팅 - 인터프리터가 변수와 함수의 메모리 공간을 선언 전에 미리 할당하는 것을 의미합니다. 호이스팅을 설명할 땐 주로 "변수의 선언과 초기화를 분리한 후, 선언만 코드의 최상단으로 옮기는" 것으로 말하곤 합니다. 따라서 변수를 정의하는 코드보다 사용하는 코드가 앞서 등장할 수 있습니다. - 특히, var 변수의 경우 호이스팅으로 인해 undefined로 초기화하게 되므로, let과 const로 선언한 변수를 사용할 것을 권장합니다. Javascript는 파싱과 실행 두 단계를 거쳐서 동작하게 됩니다. 1. 파싱 : 프로그램 전역 레벨에서의 파싱 2. 실행 : 실행문을 만나면 실행 변수와 함수명이 같은 경우 아래 코드와 같이 변수가 아직 실행문을 만나기 직전으로 변수값이 undefined로 되어있는 .. 2022. 9. 5. [BOJ 백준] 11403 경로 찾기 - 자바 접근 유형 : dfs 접근 방법 : boolean 배열을 일차원 배열로 선언하여, 각 정점에 대해 방문했는지 여부를 확인한다. 모든 정점에 대해 dfs 탐색을 통해 갈 수 있는 노드까지 탐색해본다. 이를 위해 for문에서 boolean 배열을 초기화해주는 작업이 필요하다. public class Main_11403 { private static int N; private static boolean[] visited; private static int[][] resultMatrix; public static void main(String[] args) throws NumberFormatException, IOException { BufferedReader br = new BufferedReader(new .. 2022. 9. 4. [BOJ 백준] 2606번 바이러스 - 자바 문제 : 2606번 바이러스 접근 유형 : bfs, 그래프 아래와 같은 조건을 파악 후 bfs를 사용하여 풀어야겠다고 생각했습니다. bfs를 통해 현재 노드와 인접한 노드를 큐에 넣고 방문할 수 있게 됩니다. 예시로서 아래와 같은 그림이 주어집니다. 이 그림을 보고, 노드와 간선으로 이루어진 그래프임을 알 수 있었으며, 연결 리스트 형태로 저장해야겠다고 생각했습니다. 특히, 1->2, 2->1로도 갈 수 있는 그래프 형태로서, 연결 리스트는 양방향으로 저장해야 함을 알 수 있었습니다. - 구현 코드는 다음과 같습니다. 주의 사항 : 연결리스트 초기화가 필수입니다!! public class Main { private static LinkedList list; private static boolean[] v.. 2022. 8. 30. [Algorithm] Union-Find 최소 신장 트리를 표현하기 위해 사용되는 알고리즘은 크루스칼 알고리즘, 프림 알고리즘이 존재합니다. 이 알고리즘을 구현하는 과정에서 Union-Find 자료구조가 사용됩니다. 특히, 사이클을 판별하는 과정에서 서로소 집합을 활용하여 사이클을 판별할 수있습니다. 서로소 집합을 표현하기 위해 Union-Find 자료구조를 사용합니다. 서로소 집합 : 공통 원소가 없는 두 집합입니다. {1}와 {2,3,4}는 서로 공통 원소가 없으므로 서로소 집합이라고 할 수 있습니다. Union Find의 연산의 종류 makeSet(x) : 자기 자신의 원소 번호 자신이 속해있는 집합으로 초기화하며, 크기가 1인 서로소 집합 생성하게 됩니다. find(x) : x가 속한 집합의 부모(대표가 되는 값)을 반환합니다. unio.. 2022. 8. 25. 이전 1 ··· 12 13 14 15 16 17 18 ··· 20 다음