전체 글 496

[C++] 이진 탐색 트리 구현하기 (Binary Search Tree)

이진 탐색 트리 (Binary Search Tree)이진 탐색트리는 데이터의 크기에 따라 노드의 위치가 다르다.정의는 아래와 같다. (1) 모든 원소는 서로 다른 유일한 키를 갖는다.(2) 왼쪽 서브 트리에 있는 원소의 키는 그 루트의 키보다 작다.(3) 오른쪽 서브 트리에 있는 원소의 키는 그 루트의 키보다 크다.(4) 왼쪽 서브트리와 오른쪽 서브트리도 이진 탐색 트리이다. 이진 탐색 트리 C++ 구현이제 이진 탐색트리를 구현할텐데,- 탐색(search)- 삽입(insert)두 가지 기능을 수행하도록 할 것이다.구현해볼 이진 탐색트리는 아래와 같이 생겼다. 주황색 표시된 부분은 새로 추가해볼 노드다.1234567891011121314151617181920212223242526272829303132333..

[C++] 이진 트리 구현하고 순회하기 (Binary Tree in C++)

이진트리(Binary Tree)란?모든 노드의 차수를 2 이하루 정하여 전체 트리의 차수가 2 이하가 되도록 만든 것이 이진트리다.이진트리는 왼쪽 자식노드와 오른쪽 자식노드 2개만을 가질 수 있으며, 공백노드도 이진트리의 노드로 취급한다.이진트리의 서브트리 모두 이진트리이다. 이진트리의 종류이진트리는 포화 이진 트리(Full binary tree), 완전 이진트리(Complete binary tree), 편향 이진트리(Skewed binary tree) 3가지가 있다.포화 이진트리는 모든 레벨에 노드가 꽉찬 이진트리를 말하며, 공백 노드가 없다.즉 트리의 높이가 h 일때 2^(h+1) - 1 개의 최대 노드수를 갖는 이진트리이다. 완전 이진트리는 노드 개수가 n 개일 때, 노드의 위치가 포화 이진트리의 ..

생산성을 쭉쭉 올려주는 앱/프로그램 추천

여러군데 흩어진 메모들, 온라인으로 기록했다가 오프라인으로 했다가이 프로그램, 저 프로그램 사용했다가...여러 방황 끝에 나는 몇 가지 툴들을 추려 편리하게 이용 해 보려하고 있다.특히 아이폰, 맥, 데스트탑(윈도우)를 사용하는지라 OS간 호환성이 좋은 앱들을 중심으로 쓰고 있다.어떤 프로그램을 쓰던지 간에 생산성을 높이기 위해서는 "일관성"이 중요하다.그래서 나는 구글 중심으로 모든 프로그램을 선택했다~ 메모, Google Keep 편리한 메모 앱이다.구글 아이디로 사용할 수 있으며 자동 동기화를 지원하고 라벨을 이용해 메모를 분류할 수도 있다.타일 형식의 메모가 마음에 안든다면 리스트 형식으로 보이게 할 수도 있다.특히 링크를 메모 했을 때 그 사이트가 어떤 사이트인지 보기 좋게 표시 해주는 기능이 ..

나/이슈 2017.04.08

멀티 디바이스 키보드, 로지텍 K375s 솔직한 후기

멀티 디바이스 키보드, 로지텍 K375s 솔직한 후기 요 며칠간 이 로지텍 키보드 배송이 오기를 기다렸는데, 오늘 드디어 왔다!Function키만 누르면 즉각적으로 디바이스 전환이 되는 신기한 블루투스 키보드였는데,3만원 후반의 가격에 거치대도 주길래...?ㅋㅋㅋ 한 번 구매 해 보았다. 사실 나는 테소로 갈축 기계식 키보드를 쓰고 있었다. 약 11만원인가...?기억이 잘 안나는데 10만원 대의 비싼! 키보드다.그런데 게임할때는 좋긴하지만 이놈이 코딩을 할 때는 영 힘들다.키캡 높아서 자판 사이를 오갈때 불편한 것이다. ㅠㅠ 아무튼 본격적으로 로지텍 K375s 후기를 써 보도록 하겠다. 구성품 - 박스- 키보드- AAA 듀라셀 건전지 * 2- USB 동글- 스마트폰/태블릿 용 거치대 뭔가 구성품이 가득해..

나/이슈 2017.04.05

서비스를 만들때 생각해야할 것들

광고기반 무료 음악 스트리밍 서비스인 비트가 서비스를 종료했다고 한다. 무척 아쉬운 소식이다.그 내막은 잘 모르지만 내 생각은 이러하다. 내수시장을 기반으로 한 서비스 플랫폼 비즈니스는 기업의 사업능력과 무관하게 성공할 가능성이 '구조적으로' 거의 불가능하다. 그 이유는 첫째가 수익원의 규모, 둘째가 시장의 크기 때문이다.O2O 플랫폼은 본질적인 수입원이 중개 수수료 기반이다. 양쪽을 연결하여 서로의 정보탐색비용을 줄여주는 two sides business 모델로는 한자리수 이상의 수수료를 받기 어렵다. 그렇기 때문에 수십~수백%의 마진을 붙이는 제조업이나 유통업에 비해 수익구조가 취약할 수 밖에 없다.창업캠프를 가보면 정말 90% 이상이 O2O 플랫폼 비즈니스를 하겠다고 한다. 사업모델이 단순하여 전문..

나/이슈 2017.04.02

[안드로이드] Retrofit으로 API 통신하기

이번 강의에서는 안드로이드를 위한 HTTP 클라이언트 레트로핏을 이용해서 API 통신을 구현 해 보도록 하겠다.먼저, JSON 값을 돌려주는 서버가 준비 되어 있어야한다.여기서는 간단히...깃헙 contributors를 통해 살펴보겠다.주소는 https://api.github.com/repos/square/retrofit/contributors 이다. 목표https://api.github.com/repos/square/retrofit/contributors 에 들어가면 아래와 같이 JSON 형식으로 된 정보들이 나온다. 오늘 해볼 것은 저 정보들 중에서 특히 'login' 정보를 TextView에 받아 오는 것이다. build.graddle (app) 12345dependencies { ... compi..

[Retrofit] 안드로이드로 HTTP 통신하는 Retrofit 소개

Retrofit 안드로이드 앱을 개발하면서 백엔드는 거의 필수 요소가 되었다.백엔드를 개발할 줄 몰랐을땐 Firebase 처럼 손쉽게 백엔드 기능을 구현해주는 BasS를 사용했지만,요새는 Node.js를 이용해서 손 쉽게 백엔드 서버를 만들 수 있게 되었다. 2012년 부터 쭉- 나는 안드로이드와 REST API 서버 간에 HTTP 통신을 할때는 주로 AsyncTask를 사용 했었다.귀찮기는 했지만 그게 유일한 길인 줄 알았는데, 이번에 새로운 라이브러리를 하나 알게 되었다.바로, Retrofit이다. Async보다 성능이 뛰어나대서 다음 프로젝트에 바로 적용시킬 예정이다. 공식 홈페이지에 사용법이 친절하게 적혀있다. >> http://square.github.io/retrofit/친절하게 영어로...^..

Node.js 앱에서 NPM으로 Bootstrap/JQuery 다운 받아 사용하기

static redirect를 사용해서 npm install로 다운받은 패키지들을 사용할 수 있다. First install the packages: npm install jquery npm install bootstrap Then on the server.js: var express = require('express'); var app = express(); // prepare server app.use('/api', api); // redirect API calls app.use('/', express.static(__dirname + '/www')); // redirect root app.use('/js', express.static(__dirname + '/node_modules/bootstrap..