분류 전체보기(86)
-
[Javascript] 백준 1260번 DFS와 BFS - node.js
문제 그래프를 DFS로 탐색한 결과와 BFS로 탐색한 결과를 출력하는 프로그램을 작성하시오. 단, 방문할 수 있는 정점이 여러 개인 경우에는 정점 번호가 작은 것을 먼저 방문하고, 더 이상 방문할 수 있는 점이 없는 경우 종료한다. 정점 번호는 1번부터 N번까지이다. 입력 첫째 줄에 정점의 개수 N(1 ≤ N ≤ 1,000), 간선의 개수 M(1 ≤ M ≤ 10,000), 탐색을 시작할 정점의 번호 V가 주어진다. 다음 M개의 줄에는 간선이 연결하는 두 정점의 번호가 주어진다. 어떤 두 정점 사이에 여러 개의 간선이 있을 수 있다. 입력으로 주어지는 간선은 양방향이다. 예제 입력 1 4 5 1 1 2 1 3 1 4 2 4 3 4 출력 첫째 줄에 DFS를 수행한 결과를, 그 다음 줄에는 BFS를 수행한 결..
2022.12.16 -
깊이우선탐색(DFS)과 너비우선탐색(BFS)
BFS/DFS를 처음 접하는 사람은 아래 링크의 유튜브 설명을 보는 것을 추천한다. BFS/DFS를 이해하기 정말 좋은 영상이고, 이 포스팅도 해당영상을 기반으로 했다. ▶ 위의 그림은 DFS와 BFS 경로를 순서대로 나타낸 것이다. 해당 그림을 통해 직관적으로 DFS와 BFS의 차이를 알 수 있을 것이다. 깊이우선탐색인 DFS는 가장 깊은 곳까지 방문하고, 너비우선탐색인 BFS는 같은 레벨 인접 노드를 전부 방문한뒤 다음 레벨 인접 노드를 방문한다. DFS는 Stack을 통해 구현하고, BFS는 Queue를 통해 구현한다. ✏️ 깊이우선탐색(DFS) 구현 👉🏻 깊이우선탐색 DFS(Depth-First Search)는 그래프에서 깊은 부분을 우선적으로 탐색하는 알고리즘이다. ▶ 깊이우선탐색(DFS) 구현..
2022.12.16 -
[자료구조] 스택(Stack)/큐(Queue)/덱(Deque)
✏️ 스택(Stack) 👉🏻 스택이란, 한쪽에서만 자료를 넣고 뺄 수 있는 후입선출 LIFO(Last In First Out)형식의 선형 자료구조이다. 스택의 기본 개념은 영어 단어의 뜻과 같이 '쌓는다'는 뜻이다. 스택은 같은 구조와 크기의 자료를 정해진 방향으로만 쌓을수 있고, top으로 정한 곳을 통해서만 접근할 수 있다. 예를 들어, 박스 쌓기에 비유할 수 있다. 박스를 아래에서 위로 차곡차곡 쌓으면 아래에 있는 박스를 치우기 위해서는 맨 위의 박스부터 치워야 한다. 아래부터 1->2->3 순서로 쌓여있는 상자를 오른쪽으로 옮긴다고 가정해보자. 먼저 가장 위에 있는 3번 상자를 오른쪽으로 옮기고, 그 후에는 2번 상자를 옮기고, 다음에는 1번 상자를 옮길 것이다. 즉, 마지막에 입력된 상자가 첫 ..
2022.12.16 -
Eloquent ORM 이란
Eloquent ORM 정의 Eloquent ORM 은 라라벨에서 제공하는 가볍고 사용하기 쉬운 ORM(Object-relational mapping) 으로 MVC 아키텍처에서 Model 을 담당하고 있습니다. ORM 정의와 특징 ORM(Object-relatinal mapping)이란 객체(CLASS)와 관계(RDBMS)와의 설정을 의미 합니다. 객체 지향 프로그래밍은 클래스를 사용하고 관계형 데이터 베이스는 테이블을 사용합니다. 여기서 객체 모델과 관계형 모델간에 불일치가 존재 하는데 이 객체간의 관계를 바탕으로 SQL을 자동 생성하여 불일치를 해결 하는 것이 ORM입니다. Object DB데이터 에서 매핑의 역할을 하는 것이 ORM이라 할 수 있습니다. ORM을 사용하면 SQL 에 코드에 포함시키지..
2022.12.14 -
static 정의
static이란 클래스를 정의할 때 static 키워드를 사용한 프로퍼티와 메소드는 해당 클래스의 인스턴스를 생성하지 않아도 접근할 수 있게 됩니다. 이러한 프로퍼티와 메소드를 정적 멤버(static member)라고 합니다. 코트 예시 정리 기존 클래스 밖에서 해당하는 변수나 함수에 접근하기 위해서는 인스턴스를 생성해서 접근을 해야 했지만 static은 바로 접근이 가능합니다. 접근을 할 경우에는 클래스명::접근하고자하는 변수나 함수로 작성을 하면 됩니다.
2022.03.04 -
접근제한자 public, private, protected 정의
접근제한자란 접근제한자란 멤버변수나 메소드의 어디에서 액세스 할 수 있는지를 지정하는 것입니다. 지정에는 public, private, protected의 3가지 중 하나를 지정합니다. 차이점 public - 클래스내, 클래스 외의 어디에서라도 액세스 가능 private - 같은 클래스안에서만 액세스 가능, 상속 불가, 직접 접근 불가 protected - 같은 클래스 및 자식클래스에서 액세스 가능, 상속 가능, 직접 접근 불가 코드
2022.03.04