개발(Dev) 이야기

    [C++] 순열 정렬방법 (next_permutation, prev_permutation)

    본 포스팅은 Backjoon Online Judge의 "다음순열(10972), 이전순열(10973), 모든순열(10974), 차이를 최대로(10819)"를 함께 풀때 도움이 되는 글입니다. C++의 STL에선 순열을 정렬하는 함수 next_permutation, prev_permutation이 존재한다. 가령, 1 2 3 4 라는 4개의 숫자로 이루어진 순열을 입력받았다고 가정할때 do{ for(int i=0;i

    [C++] 기본입출력, 줄바꿈

    C++에서의 기본 입출력은 간단하다. //입력 cin >> num; //출력 cout

    Raspberry pi 4 를 사용한 PiCN 구현 (1) - 라즈베리파이 4 기본 구성 (SSH 연결까지)

    본 포스팅은 총 회에 걸쳐 구성된 글입니다. 오... 작년 8월에 출시된 따끈따끈한 라즈베리파이 4를 만져보다니 감회가 새롭다. 먼저 생김새는 위와 같이 생겼다. 방열판은 내가 미리 달아놨다. 바로 이미지 씌우는 작업에 돌입해야지. 설치하기 전에 8GB 이상의 SD 카드와 컴퓨터에 삽입할 수 있는 USB Reader기도 같이 준비한다. 그리고 준비가 완료되면 이미지를 설치하기 위해 아래 홈페이지로 접속한다. https://www.raspberrypi.org/downloads/raspbian/ Download Raspbian for Raspberry Pi Raspbian is the Foundation's official supported operating system. You can install it ..

    Deep Learning과 자율 주행 기술

    딥 러닝 (Deep Learning) 컴퓨터가 인간처럼 생각할 수 있는 인공지능 AI를 구현하는 기술이다. 머신 러닝 (Machine Learning)은 좁은 의미의 인공지능을 구현하는 구체적인 접근 방식이며 알고리즘을 이용해 데이터를 분석(analysis)하고 학습(Training)하며, 학습한 내용을 기반으로 판단이나 예측(predict)한다. 구체적인 판단 기준을 소프트웨어에 직접 코딩하는 것이 아니라, 대량의 데이터와 알고리즘을 통해 컴퓨터가 학습하는 것으로 메일함의 스팸메일을 자동으로 걸러주는 것과 같은 역할이다. 하지만 머신 러닝은 인식률이 떨어지고 잦은 오류가 발생했는데 이를 해결하기 위한 기술이 바로 Deep Learning이다. 위 그림을 보면 이해가 쉽다. 딥 러닝은 인공신경망에서 발전..

    Raspberry pi 3와 Camera Module & Arduino DHT-11 Module을 사용한 실시간 실내 환경 스트리밍 서비스 구현 (3)

    본 포스팅은 총 세 단계로 구분되어 포스팅 하였습니다. 참고하세요 Raspberry pi 3와 Camera Module & Arduino DHT-11 Module을 사용한 실시간 실내 환경 스트리밍 서비스 구현 (1) Raspberry pi 3와 Camera Module & Arduino DHT-11 Module을 사용한 실시간 실내 환경 스트리밍 서비스 구현 (2) Raspberry pi 3와 Camera Module & Arduino DHT-11 Module을 사용한 실시간 실내 환경 스트리밍 서비스 구현 (3) 이번 포스팅엔 지난번에 DHT-11을 사용해서 실시간으로 실내 온습도를 측정하는 작업을 마무리했으니 카메라 모듈을 사용하여 실시간으로 스트리밍 서비스를 구축해보겠다. 1. OpenCV 3.1..

    Raspberry pi 3와 Camera Module & Arduino DHT-11 Module을 사용한 실시간 실내 환경 스트리밍 서비스 구현 (2)

    본 포스팅은 총 세 단계로 구분되어 포스팅 하였습니다. 참고하세요 Raspberry pi 3와 Camera Module & Arduino DHT-11 Module을 사용한 실시간 실내 환경 스트리밍 서비스 구현 (1) Raspberry pi 3와 Camera Module & Arduino DHT-11 Module을 사용한 실시간 실내 환경 스트리밍 서비스 구현 (2) Raspberry pi 3와 Camera Module & Arduino DHT-11 Module을 사용한 실시간 실내 환경 스트리밍 서비스 구현 (3) 지난번 포스팅 때 Raspberry pi 3에 Camera Module을 장착하고 구동 확인 까지 실습했다. 따라서, 이번엔 Arduino 기반의 DHT-11 온습도 센서를 사용해서 실내 온..

    DFS(Depth-First Search)와 BFS(Breadth-First Search)

    DFS (깊이 우선 검색) inorder preorder post order DFS는 위 그림과 같이 깊이를 먼저 고려하여 탐색하는 과정이다. STACK을 이용해서 구현이 가능하다. BFS(넓이 우선 검색) Level 단위로 검색 QUEUE를 이용해서 구현

    Cent OS에 Cmake 3.6.1 설치하기

    wget http://www.cmake.org/files/v3.6/cmake-3.6.1.tar.gz tar -zxvf cmake-3.6.1.tar.gz cd cmake-3.6.1 ./bootstrap make make install \cp -f ./bin/cmake ./bin/cpack ./bin/ctest /bin cmake -version

    Dijkstra Algorithm

    다익스트라 알고리즘(Dijkstra Algorithm)은 어떤 변도 음수 가중치를 갖지 않는 유향 그래프에서 주어진 출발점과 도착점 사이의 최단 경로 문제를 푸는 알고리즘이다. 기본 로직은 출발점을 기준으로 연결되어 있는 정점들을 추가해가며, 최단 거리를 갱신하는 것이다. 위와 같은 그래프가 있다고 가정하며 출발점은 1번 정점이다. 이 중에서 경로가 가장 짧은 정점을 고르면 2, 3번 점이 된다. 2번 점부터 확인해보면, 2번 점의 최단 거리를 가지고 있는 현재 최단거리 (INF)와 1번 점의 최단거리(0) + 1~2번의 가중치(4) 값 중 가장작은 값으로 갱신한다. 코드로 만들면 다음과 같다. --> dist[2] = min(dist[2],dist[1]+adj[1][2]) 따라서 min(INF, 4)이..

    추가 HDD 마운트하는 방법

    음... 필자는 최근에 블록체인 네트워크에 관해 공부를 하고 있는데 Geth라는 Ethereum client가 있다. 이 클라이언트는 Go 언어로 작성된 Ethereum client 로서 ethereum network에 있는 블록들을 가져오는 역할을 수행하기도 한다. 참고로 그 블록이 현재 2019년 08월 기준 70GB 가 초과하고 있는 실정이라 C 드라이브에 저장하기엔 다소 한계가 있었다. 따라서 오늘은 기존 사용하고 있던 서버 컴퓨터에 추가로 HDD (1TB) 를 장착하고 Ubuntu 환경에서 마운트 해주는 방법에 대해 포스팅을 해볼까 한다. 1. 하드디스크 확인 먼저 하드디스크를 서버에 부착하고 시동을 거는 과정은 생략한다. sudo fdisk -l fdisk 명령어로 현재 시스템에 연결되어 있는..