디버깅을 위해서 cout을 썼다가 나중에 cout을 모두 지우거나 주석처리해야하는 불편함이 있는데 이것을 해소하는 방법. 결론 부터 말하면 가장 추천 방법은 clog를 쓰고, clog를 비활성화(?) 시키는 방법을 쓴다. 1.printf()쓰기. 형식이 바뀌어서 매우 귀찮다. 2. cout을 다른 이름으로 바꿔쓰기 다른이름으로 바꿔서 썼다가, 나중에 얘네들만 한꺼번에 검색해서 주석처리하거나 없애는 식으로 할수있다. (2-1)#define dout cout (2-2)ostream &dout = cout; 두가지 모두 cout을 다른 이름으로 바꾸어 쓸수 있게 해주는 방법이다. dout
15649번: N과 M (1) 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해야 한다. https://www.acmicpc.net/problem/15649 15649번: N과 M (1) 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해야 한다. www.acmicpc.net /* 알고리즘을 한줄로 요약하면 이렇다. "1부터 N까지 고르기(이미 고른 것 제외하고)"를 길이 M이 될때까지 반복. M에 도달시 출력하고 리턴. 예를 들어 N..
[문제 상황] Cmake에서 에러: NO CMAKE_XXX_COMPILER could be found [해결] sudo xcode-select --reset Cmake로 opencv 소스코드 빌드 시도하려는데 NO CMAKE_XXX_COMPILER could be found 이라는 에러가 나와서 진행할수가 없었다. (참고로 Cmake를 step by step대로 따라하면 되는거 외에는 이전에 써본적이 없었다...) 구글링해보니, 윈도우에서 같은 오류 실행시, 시스템 변수로 C /C++ 컵파일러를 설정하여 해결한다고 많이 나와있는데 osx에서는 해본 사람이 훨씬 적은것같다. 아무튼 이문제는 C/C++컴파일러를 잘 설치하거나, 환경변수를 잘 설정하면 되는 문제인데 맥에서 환경변수는 어디서찾지??? 하다가 분..
이 글 제목에 날짜 쓰면서 5월 5일인 것을 알게 되었다... 오늘은 그냥 일요일이지 어린이날이라고는 생각지도 못했다.... 1. Cmake는 왜이렇게 어려운지? opencv extra module을 사용하려면 cmake로 빌드를 직접해야한다고 한다. 블로그 자료를 많이 찾아보고있는데, 알아들을수 있는건 내 상황에 별로 도움이 안되고(다 알아듣지 못해서) 못알아듣는건 계속 보면 졸음이 온다. 여러개의 자료를 봐도 모르겠는걸 보면 내가 알아야 하는데 모르는게 좀 많나보다. 쉽게 알아낸 사람은 별로 없는것 같으니, 아무래도 삽질을 좀 할수 밖에 없나보다. 2. sw역량테스트 접수 5/11일에 있는 시험을 접수했다. 일주일 남았다. 아 .... 시험등급은....A형이다. 3. 최백준님의 온라인강의 결제 필요한..
Keycode.info라는 좋은 사이트가 있어서 소개할겸 올린다. 키보드로 직접 키를 누르면, 누른 키의 키코드와 실제 키 이름이 나온다. 이런 사이트가 있긴한데 여기가 가장 보기가 좋은것 같다. 키보드모양에 하이라이트만 되는 사이트도 있지만, 여기서는 키코드가 같이 나오기 때문에 좋다. 한/영키 한자키, 그리고 fn과 함께 눌러서 작동하는 볼륨 업 다운 키(미디어키) 같은것도 다 표시가 된다. (다만 아두이노에서 Keyboard.h에 포함된 키보드 함수로 미디어키를 입력하려니 되지 않는다. 137이 넘으면 안되도록 되어있어서 아두이노 core파일을 수정하면 된다는데, 나중에 시간나면 다시 해보려고 한다.) 아스키코드를 16진수로 많이 표현하지만, 여기서는 10진수로 나타나기 때문에 코딩시에 char문자..
서론 삼성전자에 인턴지원을 하고 서류통과하여 소프트퉤어 역량 테스트를 보고 왔다. 시험을 준비하는 다른 분들께 도움이 될수 있을만한 내용을 포함하여 후기를 쓴다. 나는 구글 검색으로 SW역량테스트 후기들을 미리 찾아보고 갔는데 실제 시험환경은 후기와 대체로 비슷했던 것 같다. 사실 이 글에 나와있는 내용은 고사장에 가보면 다 알려주는 당연한 내용이라, 이 글을 읽어서 얻는 이득은 크게 없을지도 모른다. 그래도 시험을 보러 가야 하는 상황에서 도움이 될 만한 내용들을 함께 담아보려고 해 보았다. 나는 C/C++로 시험을 응시했기 때문에, JAVA, Python개발환경에 대해서는 정확하게 쓰지 못했다. 그렇지만 일반적인 내용들은 비슷할 것 같다. 또한 시험환경이나 시험규정은 바뀔수 있으니 '후기'일 뿐 공식..
원본 코드 https://github.com/opencv/opencv/blob/master/samples/cpp/tutorial_code/core/mat_mask_operations/mat_mask_operations.cpp 원문 설명 https://docs.opencv.org/3.1.0/d7/d37/tutorial_mat_mask_operations.html border 설명 https://docs.opencv.org/3.4.0/dc/da3/tutorial_copyMakeBorder.html ` #include #include #include #include using namespace std; using namespace cv; String filename = "/opecvImage/j11.jpg";..
이 글은 개인적인 공부를 위해 쓴 글로, 가독성이 좋지 않습니다. DFS유형에 대한 배경 소개는 생략한다. 재귀함수, stack을 이용하는것. 4개 혹은 몇개의 선택지 중에 1개를 고르고, 다음 단계에서 반복해서(재귀) 1개를 고른다. 더이상 갈수없을 때에는 부모노드로 되돌아간다. 부모 노드로 되돌아가는 경우는 언제인가? 1. 막다른길 : 더이상 경우가 없을 때(최대 깊이를 구하는 문제라면 최대 깊이를 저장하고..) 2. 목표를 달성했을 경우(최대 깊이가 N인 경우, N에 도달했을때 Good Case로 처리하고..) * 막다른 길은 for문을 돌때, 모든 케이스가 조건 불가 하면된다. 부모 노드로 되돌아갈 때 해야할 일은? 현재 dfs함수로 들어오기 전 상태로 만들어야 한다.(undo라고 기억한다) * ..
MS Visual Studio 디버깅 기능을 처음 써본다. 사실 지금까지는 cout이나 printf로 콘솔에 값을 출력하는 방법으로만 디버깅을 해왔다. 필요없는 출력구문을 나중에 지우는것도 일이고, 확인하려는 값이 많아질수록 복잡해져서 문제가 된다. 일단 꼭 필요한 기능이라고 생각되는것부터 찾아보고 복습할겸 일단 블로그에 올린다. (내용이 수정/보완 될 수 있다) 빨간점 만들기. 먼저 코드 옆에 클릭하면 🔴빨간점이 생긴다. 이 점을 중단점이라고 하는데 작동하던 프로그램을 강제로 중단하고 상태를 확인하고자 하는것이다. 디버깅 모드로 실행시, 이부분에서 실행이 일시적으로 멈추어서, 그 시점의 변수 상태를 볼수가 있다. 중단점에서 멈췄을때 할수 있는 기본적인 일은 크게 두가지로 볼수 있다. (1)변수를 확인하..