일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 코드잇
- solved.ac
- 코테
- 오늘도코드잇
- 몬스긱
- 삼성노트북
- 노트북램교체
- 백준
- 자료구조
- GMK67
- JS
- 스톡
- 어도비
- 코드잇TIL
- 긱바
- Unity
- unityC#
- 시간복잡도
- 추상적 자료형
- 코테준비
- 노트북SSD교체
- 자바스크립트
- JavaScript
- ADT
- 기계식키보드
- M1W
- LinkedList
- 삼성노트북하판
- 코딩공부
- 브론즈
- Today
- Total
목록Computer Programming (16)
SKYLIGHT STUDIO
C++이 하나도 기억이 나지 않는다.언리얼은 대체 어떻게 했지?우선 짚고 넘어가야 하는 개념이 있다 Stream말 그대로 '흐름'이다. 데이터를 읽고 쓰는 일종의 '흐름'을 설명하기 쉽게 추상화한 것이라고 보면 된다. C++에서만 사용되는 개념은 아니고 여러 언어에서도 사용하는 개념. 앞서 언급했듯이 스트림을 데이터를 특정 디바이스로로부터 입력(Input)하거나, 특정 디바이스로 출력(Output)하는 흐름을 제공하는데, 따라서 2개의 스트림이 있다고 볼 수 있다. 입력 스트림은 데이터를 외부에서 가져오는 통로. 키보드로 사용자가 값을 입력해서 그 값을 받아오게 된다면 그건 입력 스트림을 사용한다고 볼 수 있다.출력 스트림은 데이터를 외부로 사출하는 통로. 길게 볼 것 없이 콘솔창에 띄우거나 하면 출력 ..
이번에는 병합 정렬(Merge Sort)에 대해 학습한다. 폰 노이만 선생이 개발한 알고리즘으로 유명. 보통 O(nlogn) 정렬들을 학습할 때 제일 먼저 학습하게 된다. 합병 정렬하고 같은 거니까 괜히 헷갈리지 말자. 텍스트적으로 설명하자면... 주어진 배열을 반으로 나눈 다음 각각을 재귀적으로 정렬하고, 그 후에 정렬된 두 배열을 병합하여 전체 배열을 정렬하는 방법이라고 보면 된다. 분할 정복(divide / conquer)로 구현된다. 당연히 처음 본 사람은 무슨 소린가 싶을 것이다.. 일단은 분리하는 것을 divide, 합치는 것을 conquer이라고 하자. conquer 상에서는 정렬이 이루어진다. conquer을 반복한 결과 오름차순으로 정렬이 이루어진다는 것. 이런 궁금증이 생길 수도 있다...
버블 정렬에 대해 정렬한다. 아마도... O(n²) 시간복잡도를 가지는 정렬들 중에서는 제일 유명하다고 생각. 일단 그냥 텍스트로 설명하자면, 1번째와 2번째 원소를 비교하여 정렬하고(그러니까 둘을 비교해서 순서를 정리한다는 말이다), 2번째와 3번째, 그리고 N-1번째와 N번째를 정렬한 뒤 처음으로 돌아가서 n-2번째와 n-1번째까지 해서... 최대 n(n-1)/2번 정렬하는 알고리즘. 당연하게도 일반적으로 최악의 성능을 자랑하지만, 그만큼 구현 난이도는 쉽다. 전형적인 코테용 알고리즘이라고 보면 된다. 누가 대체 데이터량의 제곱을 처리하는 알고리즘을 쓰겠어... void bubbleSort(int arr[], int n) { bool swapped; // 교환시 실제로 진행되었는지 확인하는 플래그 f..
계산 복잡도 이론(Computational complexity theory)에서 문제를 해결하려는 데에 걸리는 시간과 입력의 함수 관계를 시간 복잡도라고 통칭한다. 당연하게도 퓨어한 수학에 가까운 개념이므로 잘 이해가 가지 않는 것은 당연하다. 따라서 우리의 주 관점인 컴퓨터사이언스적인 관점에서 알고리즘의 시간복잡도는 입력을 나타내는 문자열의 길이의 함수로서 작동하는 알고리즘을 취해 시간을 정량화하는 것이다. 컴공이나 소프트웨어쪽으로 가면 어차피 죽어라 해야 한다. 더 풀어서 설명하자면, 알고리즘에서 시간 복잡도는 주어진 문제를 해결하기 위한 연산 횟수인 것이다. 실제 시간 복잡도를 정의할 때는 한 가지만 사용하지는 않으며(일반적으로 빅-오(O(n))을 대학 공부할 때 많이 쓰기는 한다) 3가지 유형을 ..