728x90

분류 전체보기 336

[코딩 테스트 대비] 코테 시간복잡도 계산

프로그램 구현 전에 시간복잡도를 미리 계산해봐야한다. 문제에서 주어지는 시간/메모리 제한을 벗어나는 지를 확인해봐야하기 때문이다. * 탐색 횟수당 걸리는 시간 1억 (100,000,000 = 10^8 ) → 1초 10억 = 1,000,000,000 = 10^9 → 10초 예를 들어 int는 4byte로 -2,147,483,648~ 2,147,483,647 범위이기 때문에 크기로 보면 "21억"이며 for문으로 탐색한다면 21초가 소요된다. * 시간 복잡도 Big-O(빅오) 크기 비교 O(1) < O(log n) < O(n) < O(n log n) < O(N^2) < O(2^n) < O(n!) < O(n^n) * N=1억 이라고 했을 때, 빅오표기법에 따른 실행시간 즉, 실행시간이 1초로 제한되어 있다면 ..

[C++][BEAKJOON][DP] 동전1

[문제] 2293번: 동전 1 첫째 줄에 n, k가 주어진다. (1 ≤ n ≤ 100, 1 ≤ k ≤ 10,000) 다음 n개의 줄에는 각각의 동전의 가치가 주어진다. 동전의 가치는 100,000보다 작거나 같은 자연수이다. www.acmicpc.net [문제설명] n가지의 동전이 있을 때, 이 동전들을 적당히 합쳐서 k원이 되게 하는 경우의 수를 찾는 것. [풀이] Bottom-up 방식으로 1을 만드는 방법, 2를 만드는 방법, 3을 만드는 방법, ... 10을 만드는 방법까지 구할 것이다. 이 때, 2,3,...을 만드는 방법을 이전에 구한 값을 이용할 것이다. 문제에서 주어진 1,2,5 동전으로 생각해보면, 1,2,5로 1을 만드는 경우의 수는 1 한가지이다. 1,2,5로 2를 만드는 경우의 수는..

[C++] 정적/동적 할당된 배열의 크기 구하기

정적할당으로 만들어진 변수는 DATA영역에 저장되는데, 동적할당으로 만들어진 변수는 HEAP영역에 저장된다. DATA 영역에 할당된 변수의 메모리 크기는 sizeof 연산자로 크기를 불러 올 수 있지만, HEAP 영역에 할당된 변수의 메모리 크기는 sizeof 연산자로 불러올 수 없다. _msize 연산자로 불러와야 한다. _msize Learn more about: _msize docs.microsoft.com * 정적할당으로 만든 배열의 크기 구하기 int arr[5]; int arr_size = sizeof(arr) / sizeof(int); * 동적할당으로 만든 배열의 크기 구하기 #include #include // _msize() 사용을 위해 malloc.h 헤더 추가! using namesp..

[C++][BAEKJOON][시뮬레이션] 17144번 미세먼지 안녕!

문제 17144번: 미세먼지 안녕! 미세먼지를 제거하기 위해 구사과는 공기청정기를 설치하려고 한다. 공기청정기의 성능을 테스트하기 위해 구사과는 집을 크기가 R×C인 격자판으로 나타냈고, 1×1 크기의 칸으로 나눴다. 구사 www.acmicpc.net 풀이 미세먼지가 퍼지고 나서 기존 맵의 값을 갱신해두면 다음 미세먼지의 확산에 영향을 미치므로 int cal_map[1001][1001] = { {0,0}, }; 이라는 새 변수를 만들어서 그 변수에 값을 계속 더한 후, 마지막에 더하는 식으로 구현했다. 공기청정기의 순환부분은 공기청정기 위아래를 0으로 표시해두고 위쪽은 반시계방향, 아래쪽은 시계방향으로 한 칸씩 돌렸다. for 문 8개로 ;;;;; 마지막에 미세먼지의 양을 계산하는 것이므로 map에서 -..

[Unity] Timeline, Playable Director, Binding, Clear Bindings

* Timeline : 복합 애니메이션을 제작할 때 쓰는 Tool (Playable Director에 의존) Object에 Playabel Director Component를 추가하고 만든 Timeline은 playable 속성으로 들간다. * PlaybleDirector : Timeline Asset의 트랙과 게임 오브젝트를 연결해주기 위해 사용 * Bindings Timeline 에셋 트랙에 연결된 Audio, Animation 등의 정보들 [Binding 정리] 객체에 해당 스크립트 달아서 쓰이지 않는 binidng들 정리하기 #if UNITY_EDITOR [Sirenix.OdinInspector.Button] void ClearBinding() { var directors = Object.Find..

[git] commit이 git에 반영되지 않을 때 대처법

1. git url에 origin으로 연결되어 있는지 확인하자 git remote -v 'origin https://github.com/계정/레퍼지토리' 라는 결과가 나와야 한다. 2. 아니라면 remote에 계정 연결이 잘 안되어 있는 것이므로 연결해주면 된다. git remote add origin https://github.com/계정/리포지토리 3. 그리고 다시 push해보면 OK. [git 공식 reference 참조] Git - 리모트 저장소 원격 저장소라 하더라도 로컬 시스템에 위치할 수도 있다. remote'' 저장소라고 이름이 붙어있어도 이 원격 저장소가 사실 같은 로컬 시스템에 존재할 수도 있다. 여기서 remote'' 라는 이름은 반드 git-scm.com

[Unity] 커스텀 메뉴 만들기

Unity 는 상단 메뉴를 커스터마이징 할 수 있는 기능을 갖고 있습니다. Scene 바로가기 버튼, Jenkins 빌드 버튼 등의 자주 쓰는 기능을 만들면 더욱 편리하게 이용할 수 있겠죠? 메뉴는 Script를 통해 만들 수 있습니다. 하나의 객체로 처리하는 것이지요. using UnityEngine; using UnityEditor; using UnityEditor.SceneManagement; public class ShortcutScneneMenu{ [MenuItem("Scene Shortcut/Intro")] private static void MoveIntroScene(){ EditorSceneManager.OpenScene("Assets/Dashboard/Intro/Intro.unity");..

[git] pull 전에 commit 했을 때 대처법

commit을 했는데, pull 내역이 보이지 않았어서 pull을 다 못받고 commit을 먼저 했다면 git 충돌이 날 가능성이 많죠. (아주 빈번한 실수...하하) 이 때의 간단 해결법을 알아봅시당. 우선, git commit 내역을 지워줍니다. (일단 commit 한 상태니까 내역 검색으로 살릴 수 있어요! 걱정 NoNo) git reset --hard HEAD^ 1) --hard 옵션은 돌아가려는 이력이후의 모든 내용을 지워 버리므로 커밋해야할 것들이 있는지 다시 한 번 확인해주세요. 2) HEAD^는 바로 직전 커밋 1개를 의미합니다. 여러개의 커밋이라면 HEAD~2 (2개), HEAD~3 (3개) 등의 표현을 사용해주세요. 다음으로 못 받은 pull을 받아주세요. git pull 그 다음 gi..

[C++] 해시맵(Hash Map)에 대해 알아보자 (std::unordered_map)

[본론으로 들어가기 전에...] 기존의 map은 요소가 자동으로 오름차순으로 정렬되는 이진 탐색 트리(BST) 기반이었다. 그래서 정렬이 필요하지 않은 경우에도 자동으로 정렬되어 불필요한 오버헤드가 있었다. 즉, 오버헤드를 감수하면서 map을 사용하던지, 비표준 라이브러리인 hash_map을 사용해야 했다. 그런데, C++11 부터 이런 불편함을 해소해줄 unordered_map 이 등장했다. map과 달리 이진 탐색 트리가 아니라 '해시 테이블'로 구현되어 있는 자료구조로. unorderd_map은 정렬이 자동으로 되지 않고, 요소 검색/삽입/삭제 연산이 O(1) 시간 안에 가능하다. 그래서 우리가 공부해야할 자료구조는 unordered_map 이다 ! [unordered_map(hash_map)의 특..

[C++][BAEKJOON][DP] 9456번 스티커

문제 https://www.acmicpc.net/problem/9465 9465번: 스티커 첫째 줄에 테스트 케이스의 개수 T가 주어진다. 각 테스트 케이스의 첫째 줄에는 n (1 ≤ n ≤ 100,000)이 주어진다. 다음 두 줄에는 n개의 정수가 주어지며, 각 정수는 그 위치에 해당하는 스티커의 www.acmicpc.net 문제설명 코드 #include #include using namespace std; int sticker[2][100001]; int searchMaxScore(int); int main() { int testcase = 0; cin >> testcase; for (int t = 0; t > column; fo..

728x90