전체 글
[OpenCV4] C# OpenCV4 Template Matching
Template Matching Template Matching은 더 큰 이미지에서 찾고자 하는 이미지를 찾는 기능이다. OpenCV에서 없어서는 안될 기능이며, 자세한 사항은 아래 OpenCV URL에서 확인할 수 있다. https://docs.opencv.org/4.x/d4/dc6/tutorial_py_template_matching.html OpenCV: Template Matching Goals In this chapter, you will learn Theory Template Matching is a method for searching and finding the location of a template image in a larger image. OpenCV comes with a func..
[백준 / BOJ] C++ 6198 옥상 정원 꾸미기
https://www.acmicpc.net/problem/6198 6198번: 옥상 정원 꾸미기 문제 도시에는 N개의 빌딩이 있다. 빌딩 관리인들은 매우 성실 하기 때문에, 다른 빌딩의 옥상 정원을 벤치마킹 하고 싶어한다. i번째 빌딩의 키가 hi이고, 모든 빌딩은 일렬로 서 있고 오른쪽으 www.acmicpc.net 풀이 Stack을 이용한 간단한 문제이다. 스택에 i 번째 건물을 추가할때, 해당 건물보다 작거나 같은건 모두 pop을 해준다. 이후 pop해주고 stack에 남은 size만큼 total에 추가해주고, 다음 건물을 stack에 push 해준다. 그런데 해당 문제를 풀다가 total변수 자료형을 int로 하고, stack 자료형을 int로 하여 문제를 풀었으나, 계속 틀렸다고 하여서 다시 찾..
[백준 / BOJ] C++ 17610 양팔저울
https://www.acmicpc.net/problem/17610 17610번: 양팔저울 무게가 서로 다른 k개의 추와 빈 그릇이 있다. 모든 추의 무게는 정수이고, 그릇의 무게는 0으로 간주한다. 양팔저울을 한 번만 이용하여 원하는 무게의 물을 그릇에 담고자 한다. 주어진 모든 추 www.acmicpc.net 풀이 틀렸습니다와 런타임 에러로 고생한 문제... 이문제 난이도가 실버 1이라니 ..ㅜ 어떻게 해야할까 생각하다가 알고리즘 분류에 브루트포스 알고리즘을 보자말자 '완전탐색 문제구나' 했다. 우선 위의 그림과 같이 양팔저울을 한 번만 사용하여 그릇에 담을 수 있는 무게를 구해야한다. 이 경우의 수는 아래의 이미지와 같다. 따라서, 양팔저울에 무게추를 올리는 경우의 수는 다음과 같이 정리할 수 있다..
[백준 / BOJ] C++ 1697 숨바꼭질
https://www.acmicpc.net/problem/1697 1697번: 숨바꼭질 수빈이는 동생과 숨바꼭질을 하고 있다. 수빈이는 현재 점 N(0 ≤ N ≤ 100,000)에 있고, 동생은 점 K(0 ≤ K ≤ 100,000)에 있다. 수빈이는 걷거나 순간이동을 할 수 있다. 만약, 수빈이의 위치가 X일 www.acmicpc.net 풀이 문제에서 주어지는 조건 3가지를 만족하는 한 모든 경우의 수를 큐에 넣어버린다. 이후, 수빈이의 위치 X와 동생의 위치 K가 동일한 값이 되는 가장 처음 값을 구하면 된다. 계속 반복하며 처음 입력한 위치를 기준으로 모든 경우의 수를 큐에 다 넣고, 동생의 위치만 수빈이와 동일하면 정지시켜주자. 이후, 해당 위치값을 출력하면 끝. 직전 포스팅인 미로 문제와 크게 다..
[백준 / BOJ] C++ 2178 미로 탐색
https://www.acmicpc.net/problem/2178 2178번: 미로 탐색 첫째 줄에 두 정수 N, M(2 ≤ N, M ≤ 100)이 주어진다. 다음 N개의 줄에는 M개의 정수로 미로가 주어진다. 각각의 수들은 붙어서 입력으로 주어진다. www.acmicpc.net 풀이 연결된 점을 찾아가는 문제이다. (N,M). 이런문제는 알고리즘 분류에도 나와있지만, 너비 우선탐색으로 풀 수있다. 너비우선 탐색은 보통 큐 (queue)를 이용하여 구현한다. 큐에 관해 포스팅 되어있으니 참고하길 바란다. https://hyun-jun5.tistory.com/m/57 [Algorithm] C++ Queue (큐) 클래스 구현 큐 ( Queue ) FIFO(First In First Out) - 선입선출 이..
[Algorithm] C++ Queue (큐) 클래스 구현
큐 ( Queue ) FIFO(First In First Out) - 선입선출 이라고 불린다. 삽입연산을 Push라고 하고, 삭제연산을 Pop이라 한다. 보통 BFS (너비 우선 탐색)에 쓰인다. 나중에 집어넣은 원소가 먼저나오는 스택 (Stack)과는 반대되는 개념이다. 예시 가장 쉽게 이해되는 구문이 위키백과에 잘 설명이 되어있다. " 영어 단어 queue는 표를 사러 일렬로 늘어선 사람들로 이루어진 줄을 말하기도 하며, 먼저 줄을 선 사람이 먼저 나갈 수 있는 상황을 연상하면 된다. " 아래는 큐의 이해를 돕기위한 예시이다. 은행 업무 너비 우선 탐색(BFS, Breadth-First Search) 캐시(Cache) 구현 프로세스 관리 Code #include using namespace std; ..
[백준 / BOJ] C++ 1260 DFS와 BFS
https://www.acmicpc.net/problem/1260 1260번: DFS와 BFS 첫째 줄에 정점의 개수 N(1 ≤ N ≤ 1,000), 간선의 개수 M(1 ≤ M ≤ 10,000), 탐색을 시작할 정점의 번호 V가 주어진다. 다음 M개의 줄에는 간선이 연결하는 두 정점의 번호가 주어진다. 어떤 두 정점 사 www.acmicpc.net 풀이 DFS란? - 깊이우선탐색(Depth First Search)으로, 방문할 수 있는 정점이 있을경우, 계속해서 탐색해 나가는 방법이다. 보통 스택이나 재귀함수를 이용하여 탐색한다. BFS란? - 너비우선탐색(Breadth First Search)으로 해당 노드층의 방문한 정점에서 방문해 나갈 수 있는 모든 정점을 모두 탐색하는 것을 의미한다. 보통 큐를 ..
[C/C++] C++ 벡터 사용시, () 선언과 [] 선언의 차이
C++ 에서 vector를 선언할 시, 크기 선언을 ()괄호로 하는 방법과, []괄호로 하는 방법이 있다. 이 두가지 선언 방법의 차이점 []괄호로 크기 선언시 해당 벡터의 원소 인덱스 마다 동적으로 크기 할당을 할 수 있다. ()괄호로 크기 선언시, 선언한 크기만큼 공간을 만든 후, 초기화를 한다. 즉, [] 괄호는 크기가 동적으로늘어나나, 텅 빈 배열이라 보면 되고, () 괄호로 선언 시, 해당 크기만큼만 초기화를 시켜준다. 예시 [] 괄호로 벡터 선언시 #include #include using namespace std; int main() { ios::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); vector vec[100]; for (int i..