전체 보기(219)
-
[백준] DFS와 BFS
이 문제는 가장 기본적인 DFS / BFS 문제로 기본 개념만 알고있다면 쉽게 풀 수 있다. 성공한 코드를 먼저 확인해보자. #include #define MAX 1001 int metrix[MAX][MAX]; int visited[MAX * MAX]; void DFS (int v, int N) { // 정점 출력 printf("%d ", v); // 방문 표시 visited[v] = 1; // 인접 정점 체크 for (int d = 1; d 도착 정점 /= 도착 정점 -> 시작 정점) 이 성립되지 않으므로 대칭형태를 띄지 않는다. 이 경우에는 인접 행렬에서 값이 참일때만 정점간 이동을 수행한다.
2019.10.02 -
[SW Expert] BFS 문제 - 보급로
문제는 삼성 SW Expert 의 1249번 문제. 코드 유출하지 말라니까 문제는 직접 들어가서 보기를 권장한다. (다른 사람들은 다 올렸던데 ...) https://swexpertacademy.com/main/code/problem/problemDetail.do 짜증나는게 컴파일러가 C++ 밖에 없어서 어쩔수 없이 C 코드를 C++로 일부 바꿔서 작성하였다. 정답 코드는 아래와 같다. #include using namespace std; #define MAX 101 #define INFI 99999 typedef struct Queue { int x; int y; } Queue; int G[MAX][MAX]; int D[MAX][MAX]; Queue Q[9999999]; int front = -1; i..
2019.09.29 -
[GLIBCXX] 리눅스에서 GLIBCXX 관련 에러가 나타나는 경우 해결방법
구버전의 리눅스로 개발환경을 구축하다보면 GLIBC에 관련된 에러가 발생한다. 최신 프로그램에서 사용하는 라이브러리가 구형 리눅스에서 지원되지 않아 발생하는 에러다보니, 최신 GLIBC로 업그레이드만 하면 쉽게 해결이 가능하다. 1. GLIBC란 무엇인가? 그림 1. GUN C 라이브러리 설명 스크린샷에 이 라이브러리가 무엇인지 잘 설명되어있다. GLIBC는 GNU C 라이브러리 프로젝트이며, GUN 시스템이나 리눅스, 리눅스 커널 혹은 관련된 라이브러리에 공통 핵심기능을 제공한다. 일반적으로 리눅스에서 동작하는 네이티브 프로그램들은 이 라이브러리를 사용한다고 볼 수 있다. 만약, 프로그램에서 최신의 GLIBC 라이브러리를 요구할 경우 구버전의 리눅스에서는 아래와 같은 에러메세지가 나타난다. 그림 2. ..
2017.11.01 -
[KoaJS] 4. Mongoose (1)
이번 포스팅에서는 Mongoose 모듈을 이용하여 클라이언트가 요청한 데이터를 MongoDB에 저장해보자. 지난번 Router 포스팅에서 첨부한 파일을 이용할 예정이니 참고하기 바란다. 지난 포스팅 보기 : [KoaJS] 3. Router 1. Mongoose 그림 1. Mongoose Mongoose는 MongoDB를 이용한 객체 모델링을 제공해주는 NPM 모듈로써, ODM (Object Document Modeling 혹은 Mapper)의 대표적인 모듈 중 하나다. Mongoose를 이해하기 위해서 먼저 MongoDB에 대해 간단히 알아보자. MongoDB 일반적으로 우리가 알고 있는 데이터 베이스는 SQL (구조화 질의 언어) 을 이용하여 데이터를 조작한다. SQL을 이용하는 데이터 베이스는 대부분..
2017.10.13 -
[JRE] Oracle JRE Ubuntu server에 설치하기
배포판 리눅스들은 크게 두가지 버전으로 공개된다. 하나는 리눅스에 관련된 약간의 지식(?)만 있으면 유용하게 사용할 수 있는 데스크톱 버전이고, 나머지 하나는 서버 버전이다. 서버 버전은 데스크톱 버전과 달리 CLI 환경으로 구성되고, 서버 운영에 필요한 최소한의 패키지로 이루어져있다. 따라서 운영체제가 가볍다는 장점이 있으며, 개발자들이 VM을 가지고 환경을 구축할 때 조금이라도 가벼운 운영체제를 선택하기 위해 서버 버전으로 구성하는 경우가 제법 많다. (VM은 구조상으로 무거울 수 밖에 없으며 저성능 PC에서 작업할 때 운영체제의 안전성에 문제가 될 수 있다.) 이번 포스팅에서는 우분투 서버 버전에서 JRE를 설치하는 방법에 대해서 알아보자. 자바라는 언어가 얼마나 많고 넓은 영역에서 사용되고 있는지..
2017.09.12 -
[KoaJS] 3. Router
지난 포스팅에서는 KoaJS로 개발하기 위한 환경설정과 첫번째 KoaJS 예제를 만들어보았다. (만들었다고 하기에는 부끄러운 수준이지만 ...) 이번 포스팅에서는 Koa-router에 대해서 알아보자. 지난 포스팅 보기 : [KoaJS] 2. KoaJS 개발을 위한 환경설정 1. Router 기본 웹 서비스는 다양한 자원 (HTML, JS, IMG ...) 을 가지고 있다. 이 자원들은 웹 서비스 내부의 여러 경로에 존재한다. 클라이언트는 원하는 정보를 얻기 위해 URI를 이용하여 웹 서비스에게 자원을 요청한다. 웹 서비스는 클라이언트가 요청한 URI에 따라 기능을 분기하는데, 이러한 작업을 자동으로 수행하는 모듈 또는 기능을 Router라고 한다. 이전 포스팅에 돌렸던 첫 번째 예제를 한번 실행 해보자..
2017.09.04 -
[Samba] 잊을만하면 나오는 Samba 서버를 Ubuntu에서 설치해보자.
우분투 운영체제를 사용하다 보면 윈도우 운영체제와 파일을 주고받는 경우가 많다. 여러가지 방법이 있겠지만 가장 간단한 방법은 Samba 서버를 설치하는 것이다. 우분투 서버의 경우 운영체제 설치 과정에서 추가적으로 Samba file server를 설치할 수 있도록 하고 있다. Samba 파일 서버를 설치하여 윈도우와 우분투간의 파일 공유를 한번 구현해보자. Samba로 파일서버 구성하기 Samba로 파일 서버를 구성하는 방법은 매우 간단하다. 특히, 사용하고 있는 우분투가 데스크탑 버전이라면 GUI로도 설정을 할 수 있다. 하지만 이 포스팅에서 사용하는 우분투는 서버 버전이기 때문에 GUI를 사용할 수 없다. 우리는 터미널에서 CLI 환경으로 설정 할 것이다. CLI 환경도 간단하기 때문에 어려운 작업..
2017.08.21 -
[ISO] 맥 OS에서 Ubuntu ISO 파일을 USB로 굽기
※ 이전 블로그에 올려져 있는 글을 그대로 복사한 글입니다. 윈도우 OS의 경우 울트라 ISO라는 프로그램으로 쉽고 빠르게 ISO파일을 이용하여 부팅 USB를 만들 수 있지만, 맥OS 에서는 이 작업이 쉽지 않다. 울트라 ISO와 같은 프로그램이 맥OS를 공식적으로 지원하지 않기 때문이다. 따라서 맥에서 우분투 ISO 파일로 설치 USB를 만들기 위해서는 사용자가 수동으로 작업을 진행해야 한다. MAC OS에서 ISO 파일을 USB에 굽기 부팅 USB를 만들기 위한 다른 운영체제의 ISO 파일과 USB 메모리를 준비하자. 당연히 USB 메모리 용량은 운영체제의 용량보다 커야한다. 1. 터미널을 열고 이미지 파일이 있는 경로로 이동하여 아래의 명령어를 입력한다. hdiutil convert -format ..
2017.08.21