분류 전체보기 63

백준 2178번 미로탐색 (너비 우선 탐색 BFS)

문제 N×M크기의 배열로 표현되는 미로가 있다. 1 0 1 1 1 1 1 0 1 0 1 0 1 0 1 0 1 1 1 1 1 0 1 1 미로에서 1은 이동할 수 있는 칸을 나타내고, 0은 이동할 수 없는 칸을 나타낸다. 이러한 미로가 주어졌을 때, (1, 1)에서 출발하여 (N, M)의 위치로 이동할 때 지나야 하는 최소의 칸 수를 구하는 프로그램을 작성하시오. 한 칸에서 다른 칸으로 이동할 때, 서로 인접한 칸으로만 이동할 수 있다. 위의 예에서는 15칸을 지나야 (N, M)의 위치로 이동할 수 있다. 칸을 셀 때에는 시작 위치와 도착 위치도 포함한다. 입력 첫째 줄에 두 정수 N, M(2 ≤ N, M ≤ 100)이 주어진다. 다음 N개의 줄에는 M개의 정수로 미로가 주어진다. 각각의 수들은 붙어서 입력..

너비 우선 탐색 (Breadth-First Search)

그래프 자료구조를 탐색하는 두 가지 알고리즘이 있다. 너비 우선 탐색(BFS)과 깊이 우선 탐색(DFS)이다. BFS란? 너비 우선 탐색은 시작점으로부터 인접한 꼭짓점들을 탐색하는 방법이다. 시작점으로부터 가까운 점들 먼저 탐색하기에 뻗어나가는 모습이 된다. BFS를 사용하는 경우는, 두 점 사이의 최단경로를 찾을 때 사용된다. 시작점으로부터 가까운 점들을 우선으로, 너비를 이용하여 탐색하기에 한 개 이상의 경로가 존재하더라도, 경로가 존재하기만 한다면 최단경로를 찾을 수 있다. 대신 BFS는 재귀호출을 할 수 없기에 탐색할 꼭짓점들을 큐(Queue)에 담기 위한 더 큰 저장공간이 필요하다. 또한 꼭짓점의 수가 증가할수록 탐색해야 하는 꼭짓점의 수 또한 증가하기에, 꼭짓점이 많은 그래프에서 실행할 때는 ..

Meteor와 React.js를 이용한 웹앱 제작

대학교 2학년 수업시간에 Meteor와 React.js를 이용한 웹앱을 제작하는 과제가 있었다. 학생들을 위해 학교 내 동아리들을 모아놓고, 마음에 드는 동아리를 구독해 정보를 찾아볼 수 있도록 하는 웹사이트를 제작했다. https://uhm-gitclubs.github.io/ (소개 페이지) 종강 이후, 프로그래밍 실력을 늘리기 위해 프로젝트를 진행하고 싶었다. 무엇을 제작할지 고민하던 중 아버지가 회사 관련 일로 모바일 앱이 있으면 편하겠다고 하시는 말을 듣고, 위 과제의 경험을 살려 아버지가 필요한 앱을 만들자고 생각하게 되었다. 처음에는 모바일 앱을 원한다고 하셔서, 안드로이드 스튜디오로 앱을 제작해야 할지 고민했다. 안드로이드 스튜디오를 사용했던 경험은 전혀 없었고, 어디서부터 시작해야 할지 막..

Web/Web Application 2021.06.02