본문 바로가기

분류 전체보기106

[C++] STL : Standard Template Library 6 - 해시 맵_Hash Map About STL을 보시는 분은 대부분 아직 STL을 잘 모르는 분들이라고 생각합니다. 제가 일하고 있는 게임업계는 주력 언어가 C++입니다. 그래서 취업 사이트에 올라온 프로그래머 채용 공고를 보면 필수 조건에 거의 대부분이 C++와 STL 사용 가능이 들어가 있습니다. 게임 업계뿐 아니라 C++을 사용하여 프로그래밍하는 곳이라면 대부분 C++과 STL을 사용하여 프로그램을 만들 수 있는 실력을 필요로 합니다. C++ 언어를 배우고 사용하는 프로그래머라면 STL을 배우면 좋고, 특히 게임 프로그래머가 되실 분들은 STL을 꼭 사용할 줄 알아야 됩니다. 작년 여름부터 About STL을 쓰기 시작하여 지금은 2009년이 되었습니다. About STL 집필 계획으로는 이제 반 정도 도달한 것 같습니다. 앞.. 2018. 9. 30.
[C++] 코드그라운드 숫자골라내기 문제풀이 숫자 골라내기초등학교교 학생인 정우와 석환이는 최근 학교에서 두 이진수의 XOR 연산에 대해 배웠다. 둘은 매우 영특한 학생이라 새로 배운 연산을 갖고 이리저리 장난치기 시작했다. 다만 석환이는 정우에게 일을 시키는 것을 좋아하는지라 다음과 같은 제안을 했다. “내가 N개의 10진수를 주면, 등장하는 숫자들 중 홀수번만 나타나는 숫자들을 모두 XOR한 결과를 구해줘.” 예를 들어 '2, 5, 3, 3' 이 주어질 경우, '2'와'5'는 1번(홀수 번) 나타나고 '3' 은 2번 (짝수 번) 나타나므로 홀수 번 나타난 '2' 와 '5'를 XOR 한 결과를 구해야 하고, '2, 5, 3, 3, 2, 4, 5, 3' 이 주어질 경우 '2' 와 '5' 는 2번 나타나고, '3' 은 3번, '4' 는 1번 나타나므.. 2018. 9. 19.
[C++] 프로그래머스 가운데 글자 가져오기 문제풀이 가운데 글자 가져오기 문제 설명 단어 s의 가운데 글자를 반환하는 함수, solution을 만들어 보세요. 단어의 길이가 짝수라면 가운데 두글자를 반환하면 됩니다. 제한사항 s는 길이가 1 이상, 100이하인 스트링입니다. 입출력 예 s return abcde c qwer we 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 #include #include using namespace std; string solution(string s) { string answer = ""; string a=s; if(s.length()%2==0){ answer.push_back(a[s.length()/2-1]); answer.push_back(a[s.length()/2]); } else answ.. 2018. 9. 2.
180824-28 장애물 보간 Block Interpolation 23일날 삼성육목나가고 돌아오니 교수님께서 데이터를 가지고 나에게 미션을 던져주셧다. 돼지가 잘 탐지 될수 있도록 영상의 막대기에 가리는 돼지를 보간하는 작업을 맡기신것이다.내용은 계속 추가하겠다. 우선 장애물의 모양과 돼지의 위치는 안다는 가정에 문제를 추상화하면 색깔칠하기로 귀결되는데 이 또한 세부적으로 2가지 세부방법으로 나눌 수 있다. 1. 어디가 경계인가? 색을 보간할 영역을 파악하는 것이다. 2. 무슨 이곳에 무슨 색을 칠할 것인가? 돼지 영역에는 돼지와 비슷한 색을 바닥영역에는 바닥과 비슷한 색을 칠하는 것이다. 자 먼저 어디가 경계인가? 부터 해결하기로 했다. 일단 주변값을 contour로 따서 fillconvexPoly로 채우려고 했는데 contour 값이 정렬이 잘 안되어 정렬 알고리즘.. 2018. 8. 28.
[C,C++] 1,2차원 배열 원소 선언, 정적 동적 전체 초기화 문제를 풀다 C와 C++의 1,2차원 배열 선언 초기화가 동적,정적에 따라서도 완전달라 포스팅을 해보려 한다. C 1차원 배열 정적,동적 초기화 C 2차원 배열 정적,동적 초기화 C++ 1차원 배열 정적,동적 초기화 C++ 2차원 배열 정적,동적 초기화 순으로 진행된다. 먼저 C 1차원 배열 정적 초기화의 경우 일반적인 배열 초기화는 다들 알걸로 생각한다. 1 2 3 4 5 6 7 //int형의 5개 배열을 초기화 int arr[5]={5,9,3,4,2}; //개수를 생략해도 무방하다. int arr[]={5,9,3,4,2}; cs 1 int arr[5]={6,} cs 이렇게 하면 모두 6으로 초기화 된다는 포스팅이 많은데 그렇지 않다. 6 0 0 0 0이렇게 될뿐이다. 한번에 초기화하는 법은 찾아서 업.. 2018. 8. 23.
[OpenCV] 동영상 파일 읽어서 화면에 표시 기본적인 동영상을 입력받아 띄우는 코드입니다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 #include "opencv2/opencv.hpp" #include int main() { cv::VideoCapture Video("D:\\2018-08-17-19-09-28-Depth_Video_4.avi");//video파일을 불러와서 if (!Video.isOpened())//찾지 못하였을 경우 { return 0; //종료 } cv::Mat frame1; cv::namedWindow("video", 1);//화면에 띄울 창 생성 while(true){ Video >> frame1; //video에서 프레임을 받아와 넘겨준다 i.. 2018. 8. 22.
[C++] STL : Standard Template Library 5 -deque (2) 5.5.3. deque 실습 예제 다음은 deque에서 가장 자주 사용하는 멤버들을 사용하는 전체 코드입니다. [리스트 1]12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514.. 2018. 8. 10.
[C++] 2차원 Vector 예제 간단한 2차원 Vector 예제이다. 코드에 설명을 적어놓았으니 결과와 함께 참고하면 될 것 같다. code 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 #include #include #include using namespace std; int main() { ios_base::sync_with_stdio(false); cin.tie(0); int num; cout num; vector nums; cout 2018. 8. 8.
[C++] 입출력 속도 가속시키기 백준 2741번 N찍기 풀이 std::ios_base::sync_with_stdio(0) 알고리즘을 공부하다 사람들이 std::ios_base::sync_with_stdio(0);를 간간히 사용하는 것을 보았다. 왜 그런지 궁금하여 찾아보니 C++에서 흔하게 사용되는 입력 방법은 cin인데 이 cin이 다른 입력방법 (scanf, get)에 비해 상대적으로 느리다는 것이다. 알고스팟에 올라온 자료를 첨부한다. 출처 : https://algospot.com/forum/read/2496/ 위의 자료에 따르면 std::cin은 scanf보다 거의 3배가까이 느린것으로 나온다. 이유는 cpp의 iostream의 buffer와 c의 stdio buffer와 동기화 시켜주므로 2개의 버퍼사용으로 속도가 저하된다는 것이다. 하지만 std::ios_base::sync_with_stdio(false);를 사.. 2018. 8. 6.
[C++] 백준 1002번 터렛 문제풀이 문제 링크 백준 1002번 터렛 1002번: 터렛 각 테스트 케이스마다 류재명이 있을 수 있는 위치의 수를 출력한다. 만약 류재명이 있을 수 있는 위치의 개수가 무한대일 경우에는 -1을 출력한다. www.acmicpc.net 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 #include #include using namespace std; int main() { long long T=0,C=0,sr=0,br=0; double A=0; long long x1=0,x2=0,y1=0,y2=0,r1=0,r2=0; cin>>T; while(T!=0){ cin>>x1>>y1>>r1>>x2>>y2>>r2; A=sqrt(abs(x1.. 2018. 8. 6.
[C++] STL : Standard Template Library 5 -deque (1) 이번 회는 STL 컨테이너 라이브러리 중 하나인 deque를 설명합니다. 앞 회의 list, vector 글을 보신 분들은 아시겠지만 STL 컨테이너 라이브러리는 사용하는 방법이 서로 비슷하므로 하나만 잘 알면 다른 컨테이너도 쉽게 배울 수 있습니다. 이전에 연재했던 list나 vector에 대한 글을 보지 않은 분은 꼭 보신 후 이 글을 보기를 권합니다. 또 이미 list나 vector를 알고 있는 분들은 deque의 자료구조 및 특징을 잘 파악하기를 바랍니다. 5.1 deque의 자료구조deque의 자료구조는 이름과 같이 Deque(Double Ended Queue) 자료구조입니다. Deque 자료구조는 Queue 자료구조와 비슷하므로 먼저 Queue 자료구조를 설명하겠습니다. Queue는 선형 리스.. 2018. 8. 2.
180727-31 Recording Program Update 180727 몇가지 해야 할 일이 더 생겼다. 우선순위를 매겨 나열하자면 1. 최종 프로그램의 3일치량의 데이터량을 알아내는 작업 2. 2개 이상의 카메라를 컴퓨터에 물렸을 때 동시 녹화가 되게 기존의 프로그램을 수정하는 작업 3. 파라미터를 조절하여( Depth, Infrared, Color) 녹화가 잘되게 최적의 데이터 값을 뽑아내는 작업 그럼 1번을 우선적으로 진행하자면 color Depth 값과 binary Depth 값이 같이 저장되게 만들라고 했으므로 현재 color Depth만 저장되는 프로그램에 binary Depth를 추가 시키기로 했다. Video writer를 하나 더만들고 알고리즘을 따라 추가를 해준 결과! Binary Depth가 저장이 되지 않았다 고민끝에 이유를 발견 할 수 있.. 2018. 7. 31.