728x90

분류 전체보기 360

[C++] Hash 자료구조 / unordered_map 사용법(feat. map)

C++은 해시테이블을 unordered_map 이라는 STL로 구현할 수 있다. unordered_map 클래스 다양한 길이의 요소 시퀀스를 제어하는 C++ 표준 라이브러리 컨테이너 클래스 에 대한 API `unordered_map` 참조입니다. docs.microsoft.com * 시간복잡도 해쉬테이블은 key 값으로 탐색하기 때문에 탐색 시간복잡도는 O(1) 밖에 걸리지 않는다. 또한, 정렬할 필요가 없으므로 데이터 추가, 삭제 시에도 그 성능이 꾸준히 보장된다. * map vs unordered_map map 은 정렬이 된다. 레드블랙트리기반이므로 탐색, 삽입, 삭제에 O(longN)의 시간복잡도가 걸린다. unordered_map 은 정렬이 안된다. 해시테이블 기반이므로 탐색, 삽입, 삭제에 평균..

[git] fork 한 저장소와 fetch upstream 으로 최신화해주기

Fork한 자신의 로컬 저장소에 remote로 원래 저장소를 등록하고 최신화해주면 된다. 1) 등록하기 전에 현재 원격 저장소가 무엇이 있는지 확인해보자 $ git remote -v origin https://github.com/LeeYunSung/beakJoonCodePlus (fetch) origin https://github.com/LeeYunSung/beakJoonCodePlus (push) 현재는 내 원격 저장소만 등록되어 있는 것을 확인할 수 있다. 2) 원격 저장소에 “upstream”이란 이름을 주고 원래 소스 저장소를 추가한다. $ git remote add upstream https://github.com/suengwone/beakJoonCodePlus.git 3) 다시 등록된 원격 저..

[C++][Baekjoon][BFS 탐색] 2206번 벽 부수고 이동하기 상세 해설

[문제] 2206번: 벽 부수고 이동하기 N×M의 행렬로 표현되는 맵이 있다. 맵에서 0은 이동할 수 있는 곳을 나타내고, 1은 이동할 수 없는 벽이 있는 곳을 나타낸다. 당신은 (1, 1)에서 (N, M)의 위치까지 이동하려 하는데, 이때 최단 경로 www.acmicpc.net N×M의 행렬로 표현된 맵에서 (1, 1)에서 (N, M)까지 이동할 때 걸리는 최단 경로를 구하는 문제. 이 때, 0은 이동할 수 있는 곳을 나타내고, 1은 이동할 수 없는 벽이 있는 곳을 나타내며 1회에 한하여 벽을 부수고 이동할 수 있다. [풀이] Break 유무를 저장해놓고 한번도 깬 적 없는 벽을 깨가면서 탐색해야 할 것 같은데 그 구조를 못짜겠어서 한참을 헤맸다. 결국 풀이 참조... 이 문제의 핵심은 탐색한 경로를 ..

[Unity] Plugin

Unity에서는 일반적으로 스크립트를 사용하여 기능을 생성하지만 Unity 외부에서 생성된 코드를 플러그인 형태로 포함할 수도 있습니다 . Unity에서 사용할 수 있는 플러그인에는 관리 플러그인 과 기본 플러그인의 두 가지 종류가 있습니다 . 관리되는 플러그인 은 Visual Studio 또는 MonoDevelop와 같은 도구로 만든 관리되는 .NET 어셈블리입니다. 여기에는 .NET 코드만 포함되어 있으므로 .NET 라이브러리에서 지원하지 않는 기능에 액세스할 수 없습니다. 그러나 관리 코드는 Unity가 스크립트를 컴파일하는 데 사용하는 표준 .NET 도구에 액세스할 수 있습니다. 따라서 플러그인이 Unity 외부에서 컴파일되어 소스를 사용하지 못할 수 있다는 사실을 제외하고 관리 플러그인 코드와 ..

[Unity] Resource 와 AssetBundles

유니티 - 매뉴얼: 런타임 시 리소스를 로드 런타임 시 리소스를 로드 어떤 상황에서는, 프로젝트에 씬의 일부로써 로드하지 않고 에셋을 사용할 수 있도록 하는 것이 편리합니다. 예를 들어, 게임의 어떤 씬에서든 등장 할수 있는 캐릭터 docs.unity3d.com [Asset Bundles 이란] Unity는 Resource Folders를 지원하여 콘텐츠가 게임에 로드되는걸 자동으로 해주지만 요청이 있을 때까지 로드하지 않을 수 있다. 그게 바로 Asset Bundles 이다. Asset Bundle은 메인 게임 파일에서 완전히 분리되어 파일 또는 URL에서 게임이 요청했을 때 액세스 할 수 있는 외부 에셋 집합을 말한다. 이 파일은 빌드 된 Unity 플레이어의 외부에 존재하기 때문에 일반적으로 웹 서..

[C++][BAEKJOON][수학] 1041번 주사위 문제 풀이 & 반례

[문제] 1041번: 주사위 첫째 줄에 N이 주어진다. 둘째 줄에 주사위에 쓰여 있는 수가 주어진다. 위의 그림에서 A, B, C, D, E, F에 쓰여 있는 수가 차례대로 주어진다. N은 1,000,000보다 작거나 같은 자연수이고, 쓰여 있는 수 www.acmicpc.net [풀이] N이 1일 때, N이 2일 때, N이 3일 때를 손으로 그려보며 규칙을 찾았다. 아래 그림 참조. 즉, N이 1일 때는 가장 큰 값을 제외하고 5개를 더해주면 되고, N이 1보다 클 때는 다음과 같은 공식이 있었다. - 면이 3개 보이는 주사위 개수: 4 - 면이 2개 보이는 주사위 개수: (N-1)*4 + (N-2)*4 - 면이 1개 보이는 주사위 개수: (N-2)*(N-2) + (N-2)*(N-1)*4 공식을 구해서 ..

[C++][BAKJOON][수학] 1541번 잃어버린 괄호 풀이 & 반례

[문제] 1541번: 잃어버린 괄호 첫째 줄에 식이 주어진다. 식은 ‘0’~‘9’, ‘+’, 그리고 ‘-’만으로 이루어져 있고, 가장 처음과 마지막 문자는 숫자이다. 그리고 연속해서 두 개 이상의 연산자가 나타나지 않고, 5자리보다 www.acmicpc.net 55-50+40 같은 식이 주어졌을 때, 괄호를 알맞게 쳐서 최소 합을 구하는 문제 예시 답은 55-(50+40) = -35 이다. [문제풀이] 경우의 수를 여러개 만들어서 계산해보며 규칙을 찾아야 한다. -가 없을 때, -가 가온데 껴있을 때, -가 계속 있을 때, - + 가 반복 될 때 등등... 10+11-5+4 = 10+11-(5+4) = 12 1+10-15-10+20-1 = 1+10-(15+10)+20-(1) = 5 위 두가지 경우를 살펴..

[C++][BAEKJOON][Bruteforce] 2580번 스도쿠 풀이 & 반례

[문제] 2580번: 스도쿠 스도쿠는 18세기 스위스 수학자가 만든 '라틴 사각형'이랑 퍼즐에서 유래한 것으로 현재 많은 인기를 누리고 있다. 이 게임은 아래 그림과 같이 가로, 세로 각각 9개씩 총 81개의 작은 칸으로 이루 www.acmicpc.net [문제설명] 스도쿠 게임의 답을 찾는 문제 ~! 스도쿠 게임 조건은 아래 2가지다. 각각의 가로줄과 세로줄에는 1부터 9까지의 숫자가 한 번씩만 나타나야 한다. 굵은 선으로 구분되어 있는 3x3 정사각형 안에도 1부터 9까지의 숫자가 한 번씩만 나타나야 한다. [문제 풀이] 첨엔 예시만 보고 가로, 세로, 3x3을 탐색해서 한칸만 비어서 바로 풀수 있는 칸을 풀고 다음 칸을 푸는 방식으로 구현했다. 결과는 대망... 아래 반례처럼 빈칸이 많을 때도 포함..

[C++][BAEKJOON][TREE&DP] 2533번 사회망 서비스(SNS)

[문제] 2533번: 사회망 서비스(SNS) 페이스북, 트위터, 카카오톡과 같은 사회망 서비스(SNS)가 널리 사용됨에 따라, 사회망을 통하여 사람들이 어떻게 새로운 아이디어를 받아들이게 되는가를 이해하는 문제가 중요해졌다. 사회망 www.acmicpc.net [문제설명] 사회망 서비스(SNS)에 속한 사람들은 얼리 아답터이거나 얼리 아답터가 아니다. 얼리 아답터가 아닌 사람들은 자신의 모든 친구들이 얼리 아답터일 때만 이 아이디어를 받아들인다. 어떤 아이디어를 사회망 서비스(SNS)에서 퍼뜨리고자 할 때, 가능한 한 최소의 수의 얼리 아답터를 확보하여 모든 사람이 이 아이디어를 받아들이게 하자. 얼리어답터의 조건은 다음과 같다. - 얼리 어답터가 아니면, 모든 친구들이 얼리 어답터야 한다. - 얼리 어..

728x90