728x90

분류 전체보기 636

Visual Studio에서 OpenCV 시작하기

필자는 예전부터 이미지와 영상 처리에 대해서 관심이 많았다. 영상 처리를 하기 위해서는 OpenCV가 적합하다고 판단을 했고 시간적 여유가 생기기를 기다렸다.대학교 재학 중에는 학업을 이유로 계속 미뤄오다가, 최근에서야 공부를 시작했는데 책 한 권 없이 기본도 없이 맨땅에 헤딩을 시작한 상태라 허점이 많다. 필자의 블로그에 있는 다른 글들이 질적으로 우수하다고 당당하게 이야기할 수는 없지만, 적어도 OpenCV에 관련한 글들에 비하면 낫다고 이야기할 수 있다. 이 카테고리의 글은 다른 카테고리에 비해 지식의 전달보다는 초보의 입장에서 공부한 것들을 보여주는 용도에 지나지 않을 것이다. 그렇기 때문에 전문적인 설명을 원한다면 이 페이지를 꺼도 좋다고 생각한다. OpenCV는 무엇인가?OpenCV가 무엇인지..

Library/OpenCV 2018.03.11

Algorithm] 플로이드-워셜(Floyd-Warshall) 알고리즘

모든 쌍의 최단 경로를 구하는 방법을 찾고 싶다면, 다익스트라(Dijkstra) 알고리즘을 모든 정점(Vertex)에 대한 최단경로를 구하거나 다익스트라가 제한되는 경우(음의 가중치가 존재하는 경우)에는 벨만-포드(Bellman-Ford) 알고리즘을 모든 정점(Vertex)에 대해서 사용하면 된다. 플로이드-워셜(Floyd-Warshall) 알고리즘은 앞서 말한 두 알고리즘과는 다르게 처음부터 모든 정점 사이의 최단 경로를 구하는 알고리즘이다. 위 그림은 i에서 j로 가는 방법을 표현한 것으로, k를 경유하는 경우와 그렇지 않은 경우에 대한 것이다. 위 문자의 의미는 1부터 k까지만 경유할 수 있는 상황에서 i에서 j까지 갈 수 있는 모든 경로 중, 가장 짧은 경로의 거리로, 동적계획법(Dynamic P..

백준] 1668 - 트로피 진열

시간 제한 : 2초메모리 제한 : 128MB 입력첫째 줄에 트로피의 개수 N (1 ≤ N ≤ 50)이 주어진다. 둘째 줄부터 N개의 줄에 왼쪽의 트로피부터 차례대로 높이가 주어진다. 출력첫째 줄에 왼쪽에서 봤을 때 보이는 개수, 둘째 줄에 오른쪽에서 봤을 때 보이는 개수를 출력한다. 소스코드 #include #include using namespace std; int main(void) { int n, arr[50]; stack sl, sr; cin >> n; for (int i = 0; i > arr[i]; sl.push(arr[0]); for (int i = 1; i sl.top()) sl.push(arr[i]); sr.push(ar..

C#] C# 6.0 요약

컴파일러를 C#으로 완벽히 재작성했으며 이를 오픈소스로 공개(Roslyn).컴파일러 파이프라인을 라이브러리를 통해 외부로 노출하여 누구든지 소스에 대해 분석이 가능함. Elvis 연산자 ; 널 상태 연산자해당 연산자 이용 시, 메서드 호출, 형식 멤버 접근 전에 명시적인 널을 확인할 필요가 없어, Null Reference Exception을 마주하지 않아도 됨. Expression-bodied Function ; 표현식 본문 함수표현식 하나로 메서드, 속성, 연산자, 인덱서를 람다로 작성 Property Initializer ; 속성 초기자자동 속성에 초기값을 배정하여 초기화되는 속성을 read-only로 만들 수가 있음.read-only 속성은 생성자에서 설정이 가능하며 이는 불변이 형식 작성 시에 ..

손 안에 도시를 키워보자, TheoTown

경영 시뮬레이션 게임이라면 그냥 지나치지 않는 내게 도시 경영 게임은 매력적인 장르 중 하나다. PC 게임 중에서 심시티, 스카이라인 등을 섭렵하고 모바일에서 이와 유사한 게임을 여럿 찾아서 플레이해봤지만, 뭔가 아쉽고 쉬는 동안에도 크레딧이 모여 있는 모바일 게임의 특징을 살리지 못했다는 느낌을 받았다. 이 모바일 게임은 그런 게임들과는 다소 다른 느낌이라 리뷰를 적어본다. TheoTown에 대해서 한 번 이야기를 해보자. 종류 : 건설 & 경영 시뮬레이션개발 : blueflower유통 : blueflower플랫폼 : 구글 도트 그래픽 특유의 감성을 좋아하는 사람들이라면 이 게임을 더욱이 좋아할 것이다. 왜냐하면, 이 게임의 가장 큰 강점이기 때문이다. 다른 도시 건설 게임들처럼 잘 짜여진 도로 계획으..

백준] 5026 - 박사 과정(ACM-ICPC Regional)

시간 제한 : 1초메모리 제한 : 128MB 입력첫째 줄에 문제의 개수 N이 주어진다. (1 ≤ N ≤ 1000) 다음 N개 줄에는 "a+b"형식의 덧셈 문제나 "P=NP"가 주어진다. a,b ∈ [0,1000]이며 a와 b는 정수이다. 출력P=NP가 문제인 경우에는 skipped를, 덧셈 문제인 경우에는 덧셈한 결과를 출력한다. 소스코드 #include #include using namespace std; int main(void) { int n; string s; cin >> n; while (n--) { cin >> s; if (s == "P=NP") cout

백준] 11404 - 플로이드

시간 제한 : 1초메모리 제한 : 256MB 입력첫째 줄에 도시의 개수 n(1≤n≤100)이 주어지고 둘째 줄에는 버스의 개수 m(1≤m≤100,000)이 주어진다. 그리고 셋째 줄부터 m+2줄까지 다음과 같은 버스의 정보가 주어진다. 먼저 처음에는 그 버스의 출발 도시의 번호가 주어진다. 버스의 정보는 버스의 시작 도시 a, 도착 도시 b, 한 번 타는데 필요한 비용 c로 이루어져 있다. 시작 도시와 도착 도시가 같은 경우는 없다. 비용은 100,000보다 작거나 같은 자연수이다. 출력N개의 줄을 출력해야 한다. i번째 줄에 출력하는 j번째 숫자는 도시 i에서 j로 가는데 필요한 최소 비용이다. 만약, i에서 j로 갈 수 없는 경우에는 그 자리에 0을 출력한다. 소스코드 #include #define ..

백준] 10474 - 분수 좋아해?(ACM-ICPC Regional)

시간 제한 : 2초메모리 제한 : 256MB 입력한 줄에 걸쳐 한 테스트 케이스가 입력된다. 각각의 테스트 케이스는 [1, 2^31 - 1]범위의 두 정수가 입력된다. 첫번째 정수는 분자고 두번째는 분모이다. "0 0" 입력이 들어오는 라인에서 입력을 종료한다. 출력각 테스트 케이스에 대해 한 줄에 걸쳐 주어진 입력에 맞는 대분수를 공백토큰으로 구분하여 출력하라. 소스코드 #include using namespace std; int main(void) { int x, y; while (1) { cin >> x >> y; if (x == 0 && y == 0) break; cout

728x90