프로그래밍 자습서

고정 헤더 영역

글 제목

메뉴 레이어

프로그래밍 자습서

메뉴 리스트

  • 홈
  • 태그
  • 방명록
  • 글 작성
  • 분류 전체보기 (11)
    • 자습 (10)
    • C++ (1)
    • VAPE (0)

검색 레이어

프로그래밍 자습서

검색 영역

컨텐츠 검색

자습

  • M1 Mac Xcode에서 openGL freeglut 사용하기

    2022.04.14 by CASTLELONG

  • Binary Search(이진탐색, 이분탐색) Algorithm

    2022.04.04 by CASTLELONG

  • QUICK SORT ALGORITHM with others

    2021.01.09 by CASTLELONG

  • Windows API 바라보는 방향으로 움직이기

    2021.01.04 by CASTLELONG

  • Windows API 사각형 회전 시키기

    2020.12.30 by CASTLELONG

  • HEAP TREE with HEAP SORT ALGORITHM

    2020.12.10 by CASTLELONG

  • STACK ALGORITHM with LINEAR LIST

    2020.12.07 by CASTLELONG

  • 0.1 + 0.2 != 0.3 (작성중)

    2020.08.19 by CASTLELONG

M1 Mac Xcode에서 openGL freeglut 사용하기

M1 Mac은 공식적으로 openGL의 지원을 중단해 메탈로 넘어갔다. 그래서 intel Mac에서는 XCode에 기본적으로 openGL이 포함되어있는데, M1 Mac XCode에는 포함도 안되있고 영문 레퍼런스가 거의 전무해 방법을 찾는데 힘들었다. 일단 Homebrew가 설치되어있어야 한다. Homebrew는 알아서 설치하고, 터미널에 들어가자 그리고 brew install freeglut 명령어 입력해주면 Homebrew에서 알아서 freeglut를 설치한다 그러면 opt/homebrew/cellar 경로에 freeglut폴더가 생긴 것을 볼 수 있다. 그 안에 내 기준으로는 3.2.2 폴더 그리고 그 안에 include 폴더와 lib 폴더를 포함한 여러 파일들이 있다면 여기까지 성공 이제 xcod..

자습 2022. 4. 14. 14:35

Binary Search(이진탐색, 이분탐색) Algorithm

소주 병뚜껑을 가지고 하는 업 다운 게임에서 맞추는 방법은 여러가지가 있다. 머리를 빼놓고 할 수 있는 방법은 1) 1부터 50까지 수를 답이 나올 때까지 차례대로 말하는 방법 2) 무지성으로 찍는 방법 하지만 우리는 그런 비효율적이고 무지성이 아닌 가장 합리적으로 이 문제를 풀어가려면.. 1과 50 사이의 중간인 25를 먼저 부르고 업이면 25와 50 그 중간인 27, 28 다운이면 1 과 25 그 중간인 12, 13을 외치면 되는 그런 방법으로 절반씩 답의 범위를 줄여나가면 금방 답에 근접할 수 있다. 이런 방법을 활용한 알고리즘이 바로 이진탐색 즉 Binary Search다. 이진탐색은 언제 쓰냐??? 바로 최솟값과 최댓값이 정해져 있을 때다. 범위가 적을때는 최솟값부터 최댓값까지 차례대로 하는게 ..

자습 2022. 4. 4. 02:28

QUICK SORT ALGORITHM with others

퀵 정렬은 여러가지 방식으로 구현할 수 있다. 구현하는 방식도 여러가지인 만큼 여러 문서를 보면서 이해하는데 한참 걸렸다. 가장 도움이 컸던 것은 나동빈님의 퀵정렬 글이었다. 가장 구현하기 쉬운 것은 Pivot을 맨 왼쪽 혹은 오른쪽에 있는 것을 잡는 것. 그러나 이런 식으로 하면 이미 정렬되어 있는 배열을 정렬할 때 시간 복잡도가 O(n^2)이 되기에 선택정렬이나 버블정렬과 다를게 없다. 그래서 피벗을 랜덤으로 잡거나 중간지점을 잡으라는데. 나는 위 아래 둘다 해보고 시간이 얼마나 걸리는지 측정해봤다. 1. 피벗을 맨 왼쪽으로 잡는 퀵 정렬. void quickSort(int lo, int hi) { if (lo >= hi) { return; } else { int pi = lo; int i = lo ..

자습 2021. 1. 9. 19:58

Windows API 바라보는 방향으로 움직이기

사각형을 회전시켰다. 회전시키기 전까지 움직이기는 껌인줄 알았다. 그러나 여태 내가 만든 프로그램들은 엔진이 대신해줘서 쉬웠던거지 쌩 코드로 만드는 움직임은 쉽지 않았다. 1. 뭐가 어려운가. 일단 회전을 시켰으면 바라보는 방향으로 움직이기를 할껀데 단순히 화면기준 위아래양옆으로 움직이는 것이 아니기에 이것조차 삼각함수를 써야한다! 뭔가 머릿속에는 이렇게 하면 된다 싶어 A4용지에 끄적여보는데 멍청한 머리로는 답이 안나와 일단 해봤다. 2. 코드 LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) { static float x = 0, y =0; static float ang = 0; HDC hdc; static ..

자습 2021. 1. 4. 15:08

Windows API 사각형 회전 시키기

대학 1학년때, 동아리에서 각자 자신이 갈 분야를 택해서 멘토 멘티를 정하고 공부를 하는 시간을 가졌다. 나는 뭘 골랐는지 기억이 안나는데, 게임을 택했던 친구는 있었다. 게임 멘토는 친구에게 윈도우 api로 탱크를 회전시키라는 과제를 주셨었다. 나도 같이 지켜봤는데 삼각함수를 이용한 문제였고 결국 그 친구는 포기했고, 나 또한 수포자였다. 그래서 이번에 시도해봤다. 1. 삼각함수 삼각함수가 뭐에 쓰는건지 나는 몰랐다. 관심은 있었으나, 배우기에는 산이 너무 높아보였고, 하기 싫었다. 그러던 중 올해 초에 유튜브에서 이런 영상을 봤다. https://www.youtube.com/watch?v=C_UsgRpyrUM&t=121s 나에게 삼각함수를 단번에 알려주는 레게노 영상이다 이 영상을 본 기억을 종합해 ..

자습 2020. 12. 30. 16:26

HEAP TREE with HEAP SORT ALGORITHM

linear linked list를 이용한 stack에 이어 두번째 algorithm 시간이다. 오늘은 heap tree와 heap sort를 구현했다. 재학시절 트리를 구현한 적이 있긴 있는데 2년이 넘도록 그에 관련한 알고리즘을 사용하지도 않고 보지도 않았으니 다 까먹었다. 그래서 heap tree를 이해하는데 한참이 걸렸다. 아무것도 모르는 사람이 heap tree 의 이미지를 보면 난해할것이다. 이미지만 보고서 구현을 할라면 무엇으로 구현을 해야하는지 착잡해지는데. 간단하다. heap tree는 1차원 배열로 구현되며, 0이 아닌 1로 시작한다는 가정 하에 부모 자식간의 상관은 자식/2가 부모를 가리킨다. #include #include #include void newKey(); void delK..

자습 2020. 12. 10. 15:35

STACK ALGORITHM with LINEAR LIST

대학교 1학년 우리 동아리에서 마지막 과제는 링크드 리스트 였다. 나름 이것저것 해봤다고 해본 나였지만 링크드 리스트라는 어려운 이름에 멘붕이 왔고 곧이어 이것저것 찾아봤다. 공책에 쓰고 지우기를 반복해 완성시킨 링크드 리스트는 free를 쓰지 않아 놀림받았다. 오늘은 STACK algorithm을 Linked list중 singly linked list와 doubly linked list로 구현해봤다. 사실 대학교 1학년을 마치거나 그 전에 배웠다면 누구나 할 수 있는 어렵지 않은 구조이다. 그래서 고민했다. Array로 구현할지 Linked list로 구현할지.. 하지만 Linked list가 더 멋져서 이걸로 구현했다. 코드는 쪽팔려서 안올릴까 하다가 누가 보겠거니 그냥 올린다. 아래는 SINGLY..

자습 2020. 12. 7. 16:32

0.1 + 0.2 != 0.3 (작성중)

어제 velog를 읽다가 글 하나를 발견했다 아아아닛 ! 머리가 띵했다. 그래서 구글신님에게 물어봤는데 부동소수점표현 때문에 그렇단다. 사실 대학교에서 배운건데 까먹어 버린것이다. 그래서 오늘은 부동소수점에 대해서 살펴볼 것. 아래 적는 내용은 내가 까먹을 수 있는 부분에 대해서만 써놓은것이다. 1. 단정도(32bit)와 배정도(64bit) 부동소수점 표현 먼저 둘다 공통적으로 1비트를 부호로 사용하고 단정도의 지수는 8비트, 배정도는 11비트 가수는 단정도에서 23비트, 배정도에서는 52비트가 된다. 2-1. 지수부의 쓰임새 0.2 는 부동소수점표현으로 0.0011001100110011... 이다. 하지만 저장할때는 가장 앞에있는 1을 찾아서 그 뒤로 소수점을 옮겨준다. 예를들면 0.2는 1.10011..

자습 2020. 8. 19. 17:16

추가 정보

인기글

최신글

페이징

이전
1 2
다음
TISTORY
프로그래밍 자습서 © Magazine Lab
페이스북 트위터 인스타그램 유투브 메일

티스토리툴바