소프트웨어 개발/C 12

(1) C++ 기본 빠르게 익히기 - 포인터

- 포인터 일반적으로 언어에서 int, float와 같은 기본자료형들은 값으로 움직이고 객체등은 참조값으로 움직입니다. = 연산자를 통해 같다고 선언하면, 기본자료형들은 그 당시에만 값이 똑같이 바뀌지 같은 값을 바라보고 있는것은 아닙니다. C에서는 기본자료형들도 포인터나 참조자등을 통해 쉽게 두 경계를 넘나들수 있습니다. 즉 var a = 1이라고 선언했을때 1을 가르키고 있는 주소값으로 포인터연산등이 가능해집니다. #include void swapByRef(int * num1, int * num2) { int temp = *num1; *num1 = *num2; *num2 = temp; } void swapByValue(int num1, int num2) { int temp = num1; num1 = ..

C++ Visual Studio Code 에서 실행

본 포스팅은 주인장의 C++ 기억 되살리기용 하루용 프로젝트입니다. 그때 당시에는 전혀 프로그래밍 지식이 전무한 상태였고, 결과는 좋지 못했지만 그래도 참 재밌게 들었던 기억이 납니다. 이제 언어자체의 사용은 크게 힘이 들지 않는 상태이므로 빠르게 기억을 쫓아가 보겠습니다. 툴 - Visual Studio Code / Windows 10 요즘 그래도 트렌드인 이 에디터는 업데이트도 빠르고 여러 플러그인도 쓸수있어서 컴퓨터 포맷하면 개인적으로 바로 까는 에디터 입니다. 원래는 한글도 잘 안되고 했었는데, 점점 업데이트가 되면서 무거워지긴하는데 좋아지네요. Visual Studio 정식 버전은 이것저것 깔리는게 많아, 굳이 가벼운 코딩을 하는데 필요하지 않습니다. https://code.visualstudi..

Microsoft Face API를 이용한 얼굴 세부 인식기 개발

어쨌든 요기서 SDK를 다운로드 받을수 있다.어떻게 얼굴을 인식하는 기술을 만드느냐 하는것은 박사들이 알아서 잘 할것이고 본인도 시켜주면 굉장히 잘할수있는데 기회가 나지 않기때문에 라이브러리만 가져다가 응용어플리케이션을 만든다. https://www.microsoft.com/cognitive-services/en-us/face-api 위에다가 그냥 넣으면 사실 그게 답이지만, 문제는 여러 이미지를 때려박고 거기에서 나오는 데이터를 대량으로 처리하고 싶기때문에 그게 문제이다. 대강의 프로그램은 복잡하지 않다. 솔직히 그냥 홈페이지에서 각종 얼굴을 뗘다가 붙여서 수작업으로 작업할수도 있는데, 아무래도 너무 느리다. 굉장히 귀찮기 때문에 C#을 이용해서 어플리케이션을 한번 만들어 봤다. 레이아웃은 아무래도 좋..

Microsoft Face API 주요부분

중요한 부분은 다음과 같다. 서버와 연결하는 부분 var faceServiceClient = new FaceServiceClient(subscriptionKey); face를 추출하는 부분 Contract.Face[] faces = await faceServiceClient.DetectAsync(fileStream, false, true, new FaceAttributeType[] { FaceAttributeType.Gender, FaceAttributeType.Age, FaceAttributeType.Smile, FaceAttributeType.Glasses }); 돌아가면서 객체 collection에 넣는 모습 foreach (var face in faces) { DetectedFaces.Add(ne..

복잡도에 따른 속도 순위

O(1) : 입력 자료의 수에 관계없이 일정한 실행 시간을 갖는 알고리즘O(log N) : 입력 자료의 크기가 N일경우 log2N 번만큼의 수행시간을 가진다.O(N) : 입력 자료의 크기가 N일경우 N 번만큼의 수행시간을 가진다.O(N log N) : 입력 자료의 크기가 N일경우 N*(log2N) 번만큼의 수행시간을 가진다.O(N2) : 입력 자료의 크기가 N일경우 N2 번만큼의 수행시간을 가진다.O(N3) : 입력 자료의 크기가 N일경우 N3 번만큼의 수행시간을 가진다.O(2n) : 입력 자료의 크기가 N일경우 2N 번만큼의 수행시간을 가진다.O(n!) : 입력 자료의 크기가 N일경우 n*(n-1)*(n-2)... * 1(n!) 번만큼의 수행시간을 가진다. ex)외판원 문제(TSP)의 기본적인 해법 일..