본문 바로가기
728x90

분류 전체보기102

[Algorithm] Insert Sort : 삽입정렬, 삽입소트 ( 코드 포함 ) 1개 짜리 배열에서부터 정렬을 시작한다. 1개짜리 배열을 정렬하고 2개짜리 배열을 정렬한다. n개까지 반복하는데 정렬하는 기준은 i 번째까지 정렬되어있다면 i+1 번째를 자신이 들어가야할 위치에 넣기까지 계속 뒤로 한칸씩 넘긴다. 삽입 정렬의 시간복잡도는 O(n²)이지만 배열의 정렬이 대부분 되어있다면 매우 빠른 속도로 정렬이 될 수도 있다 [프로그래밍 공부]/Algorithm 2022. 1. 22.
[Algorithm] Merge Sort : 병합 정렬, 병합 소트 ( 코드 포함 ) 입력된 배열의 중간지점을 찾은 뒤 반으로 나눈다. 그리고 나눈 전반부와 후반부를 각각 독립적으로 정렬한다 ( 재귀적으로 다시 반으로 정렬 ) 마지막으로 전반부와 후반부를 병합한다. 병합정렬의 수행시간은 평균 O(n*log n)이고 최악의 경우에도 O(n * log n) 이다. 코드 이전까지 정렬함수와 다르게 정렬하고자 하는 부분의 시작인덱스와 끝 인덱스를 넣는다. 재귀적으로 되어있는데 merge는 분열되어 각각 정렬된 배열을 하나로 합치는 역할을 한다. merge함수 결과 [프로그래밍 공부]/Algorithm 2022. 1. 22.
[Algorithm] Heap Sort : 힙 정렬, 힙 소트 ( 코드 포함 ) 힙 소트는 힙이라는 자료구조를 이용하여 정렬하는 방식이다. 힙은 '각 노드의 값은 자신의 자식 노드의 값보다 항상 작다' 를 만족하는 자료구조이다. 따라서 힙의 머리부분은 항상 제일 작다. 정렬을 위해서 궂이 리스트를 이용하여 힙을 만들 필요는 없고 배열로 만들면 된다. 주어진 배열을 힙으로 만든 뒤 가장 작은 값을 차례로 줄여 힙의 크기를 감소하는 방법을 사용한다. 힙 배열에서 a[k]의 자식의 위치는 a[k]와 a[k+1]이다. k가 왼쪽, k+1이 오른쪽이다. a[k]의 부모노드는 a[k/2]이다. 먼저 결과 샷 템플릿을 이용하여 범용성을 구현하기엔 너무 귀찮고 어디서 재활용할 것도 아니기 때문에(퀵소트 *를 이미 템플릿으로 짜놔서 그거 쓸래..) 그냥 int 배열을 인자로 받는 힙 정렬을 구현하였.. [프로그래밍 공부]/Algorithm 2022. 1. 22.
Steam Direct 게임 등록하기 스팀 다이렉트에 게임을 등록하기가 여간 쉽지 않더군요.. 게임 출시가 얼마 남지 않아 스팀에 판매등록(?)을 하면서 겪은 수고를 조금 공유하고자 적어봅니다. 우선 스팀다이렉트에 게임을 등록하기 위해서는 100달러와 스팀에 판매자 인증(?) 비슷한 절차를 겪어야 합니다. 이미 인증을 하신 적이 있다면 다시 하지 않아도 됩니다. ( 인증은 1번만 하면 됩니다 ) 100달러는 게임 등록비인데 매출이 1000달러가 넘는 시점에서 환불해준다고 합니다. ( 무료게임도 등록비를 내는지는 모르겠습니다. ) 먼저 스팀웍스 홈페이지에 들어갑니다. ( https://partner.steamgames.com/ ) Steamworks Sign Up Game Developer or Publisher If you're ready .. [프로그래밍 공부]/기타 2022. 1. 22.
steamworks sdk 사용하여 빌드하고 게임 올리기 스팀에 게임을 등록할 때 상점페이지는 친절하게 잘 설명이 되어 있어서 작성하는데 큰 어려움을 겪지는 않습니다. 근데 저는 빌드할 때 너무 어려웠는데요 스팀 도큐멘테이션에 있는 정보가 너무 예전 Steamworks 정보라 현재랑 맞지 않기도 했구요 그래서 한 번 정리하려 합니다. 우선 Steamworks sdk를 다운받으셔야합니다. steamworks에서 다운 가능합니다. 다운 받은 뒤 압축을 풀면 다음과 같은 폴더가 나타납니다. 다른 폴더는 볼 필요 없이 tools -> ContentBuilder 폴더로 들어가면 다음과 같이 나옵니다. scripts 폴더를 들어가면 위와 같은 파일 두 개가 있습니다. 확장자가 .vdf 파일인데 메모장으로 열면 열립니다. 우선 이름을 변경해줍니다. 자신이 등록할 앱ID로 .. [프로그래밍 공부]/기타 2022. 1. 22.
헝가리안 표기법 헝가리언 표기법 변수병 앞에 데이터형 접두어를 붙이는 것. 변수가 무엇을 의미하고 어떤 데이터 타입을 갖는지 명시적으로 알 수 있다. 자주 사용하는 표기법 접두어 데이터 타입 접두어 데이터 타입 arr 배열( array ) i int, 인덱스( index ) n int, 정수형 표기 f float d double l Long int b BOOLEAN p pointer ch 문자( character ) lp Long pointer cb 바이트 갯수( count of bytes ) str C++ 문자열 dw Unsigned long( DWORD ) sz NULL로 끝나는 문자열 h 핸들( HANDLE ) w Unsigned int( WORD ) g_ 전역변수에 붙임 m_ 멤버변수에 붙임 예시 int nCou.. [프로그래밍 공부]/기타 2022. 1. 22.
[Git] Git Repository (깃 저장소) 삭제하기 1. 깃 홈페이지에서 나의 저장소 목록으로 간다. 2. 삭제를 원하는 저장소를 선택한 뒤 Settings 로 간다. 3. 가장 아래쪽에 있는 Danger Zone을 보면 Delete this repository 가 있다. 4. Delete this repository 를 클릭하면 정말 삭제할 것인가 묻는 창이 나타나며 계정/저장소 이름 을 입력하고 엔터 또는 아래 버튼을 눌러 다음으로 넘어간다. 5. 깃 계정의 비밀번호를 입력하면 정상적으로 삭제가 완료된다. [프로그래밍 공부]/Git 2022. 1. 20.
[Unreal] git 푸시 시 용량 초과 오류 ( Large files detected. You may want to try git large file storage ) 언리얼 프로젝트를 가감없이 git에 푸시하려고 하면 용량 초과로 인해 실패하게 된다. Large files detected. You may want to try git large file storage 라는 문구가 나오는데 결과적으로 100mb 이상의 파일을 올리고 싶으면 돈을 더 내라 라는 말이다. 초과한 파일들을 보면 intermediate 폴더에 있는 파일인데 intermediate 폴더 자체가 임시파일 저장소 같은 곳이므로 삭제해도 된다. 언리얼 C++ 디렉토리 중 제거하여도 무방한 파일 및 폴더 아래 파일들은 삭제하여도 프로젝트를 실행하면 다시 생성된다. Saved : 자동 저장, 로그, 스크린샷 등 저장 관련 폴더 Intermediate : 임시 파일 관련 폴더 (VS 프로젝트 파일이 저장) .. [Unreal4]/오류 수정 2022. 1. 19.
728x90