본문 바로가기

분류 전체보기

BOJ 백준 1699 제곱수의 합 <dp> https://www.acmicpc.net/problem/1699 이 문제는 100000 이하의 정수 하나를 입력 받아, 그 정수를 제곱수의 합으로 표현할 때, 사용되는 제곱수의 최소 개수를 출력해주는 문제이다. dp문제로, 1부터 입력받은 정수 N까지 최소 개수를 구해나가면 된다.' 1은 1^2로 1개 2는 1^2 + 1^2 로 2개 3은 1^2 + 1^2 + 1^2 로 3개 4는 2^2 로 1개 ... 이렇게 dp배열을 채워 나가, dp[N]을 출력해주면 된다. dp 배열을 채워나가는 점화식은 아래와 같다. dp[i] = min(dp[i], dp[i - 제곱수] + 1) i - 제곱수 + 제곱수 = i 이다. 예를 들어, 12는 [3 + 9] , [8 + 4] , [11 + 1] ..
콜라한캔 :: 16진수 문자열로 변환 정확한 크기의 자료형을 제공해주는 헤더 int8_t, uint8_t 8비트 자료형int16_t, uint16_t 16비트 자료형int32_t, uint32_t 32비트 자료형int64_t, uint64_t 64비트 자료형 최소 크기의 자료형 int_least8_t, uint_least8_t 8비트int_least16_t, uint_least16_t 16비트int_least32_t, uint_least32_t 32비트int_least64_t, uint_least64_t 64비트 빠른 최소 크기의 정수형 자료형 int_fast8_t, uint_fast8_t - 8비트 빠른 동작 최소 크기 정수형.int_fast16_t, uint_fast16_t - 16비트 빠른 동작 최소 크기 정수형.int_fast32_t..
콜라한캔 :: 하노이의 탑 재귀를 이용해 푸는 대표적 문제들 중 하나인 하노이의 탑은 이해하기 정말 힘든 문제였다. 하노이의 탑 문제 : https://ko.wikipedia.org/wiki/%ED%95%98%EB%85%B8%EC%9D%B4%EC%9D%98_%ED%83%91 위의 그림과 같이 한 곳에 모여져 있는 원판을 아래의 조건을 지키면서 다른 기둥으로 옮기는 문제이다. 1. 한 번에 한 개씩 옮길 수 있다. 2. 자신보다 작은 원판의 위에 올라갈 수 없다. n 개의 원판을 옮기는데 필요한 최소 경우의 수는 2^n - 1개로, 만약 3개의 원판이라면 7번의 옮기는 행동을 통해 해결할 수 있다. A B C 기둥이 있고, A에서 B로 원판을 이동시키려고 한다고 해보자. A에서 B로 원판을 이동시킨다는 것은 풀어..
01. Core class 스테이지, 유저 및 몬스터와 같은 오브젝트와 같은 모든 게임의 요소들을 초기화해주는 것이 Core 클래스이다. 앞으로 스테이지를 관리하는 MapManager 클래스나 오브젝트들을 관리하는 ObjectManager 클래스들이 만들어질 것인데, 이러한 클래스들의 초기화가 Core 클래스를 통해 이루어질 것이다. value.h#pragma once #include using namespace std; #define SAFE_DELETE(p) if(p) delete(p) Core.h#pragma once #include "value.h" class CCore { public: CCore(); ~CCore(); private: static CCore*m_pInst; public: static CCore* GetI..
콜라한캔 :: 유니티 다운로드 https://store.unity.com/kr/download?ref=personal 유니티 코리아 다운로드 사이트
BOJ 백준 1238 파티 <다익스트라> https://www.acmicpc.net/problem/1238 N개의 마을에 각각 학생들이 한 명씩 있고 특정 마을에서 파티가 열린다고 했을 때, 파티장에 갔다가 다시 집으로 돌아오는 시간이 가장 긴 경우를 찾는 문제이다. 음의 가중치가 존재하지 않기 때문에 다익스트라를 이용하여 풀면 되는 문제이다. 먼저 파티가 열리는 마을을 제외하므로 N-1개의 마을에서 파티장까지의 최단 경로를 모두 구해준 뒤에 파티장으로부터 각각의 마을까지의 최단경로를 구해주면 되는, 다익스트라를 두 번 활용하면 되는 문제이다. 즉, 정리하자면 아래의 두 가지의 경로를 더해주면 특정 마을에서 파티장을 갔다오는데 걸리는 총 시간이 된다., 1. N - 1개의 마을에서 파티장까지의 최단경로 구하기 2. 파티가 열리는 마..
BOJ 백준 1516 게임 개발 <위상 정렬> https://www.acmicpc.net/problem/1516 이번 문제는 문제를 제대로 이해하지 못해 고생했다. 특정 건물을 짓기 위해 다른 건물을 먼저 지어야 한다는 간단한 위상 정렬 문제이다. 그런데 나는 건물이 동시에 건설된다는 생각을 하지 못하고, 어리석게도 한 건물씩 지어야 한다고 생각했다. 예를 들어 1. A를 짓기 위해 B를 지어야 한다. 2. A를 짓기 위해 C를 지어야 한다. 3. B를 짓기 위해 D를 지어야 한다. 라는 세 가지 조건이 있다고 했을때, A를 지을 때 고려해야 하는 시간은, 동시에 지을 수 있으므로 B + C 가 아닌, B와 C 중 더 많이 걸리는 시간만 고려해주면 된다. #include #include #include #define SIZE 501..
BOJ 백준 1766 문제집 <위상정렬> https://www.acmicpc.net/problem/1766 어떤 문제를 풀기 위해서 다른 문제를 먼저 풀어야 하는, 일반적인 위상정렬 문제이다. 다만, 가장 쉬운 문제부터 풀어야한다는 조건이 있다. 정점의 번호순으로 1번부터 N번으로 가면서 점점 어려워진다. 예를 들어, 1. 4번 문제를 풀기 위해서는 2번 문제를 먼저 풀어야 한다. 2 -> 4 2. 1번 문제를 풀기 위해서는 3번 문제를 먼저 풀어야 한다. 3 -> 1 위의 두 가지 조건이 있을 때 답은 2 -> 3 -> 1 -> 4 가 된다. 2번을 푼 뒤에 풀 수 있는 문제는 3번과 4번 문제인데, 3번이 더 쉬우므로 3번을 풀고 그 다음엔 1번과 4번을 비교하여 1번을 먼저 푸는 것이다. 이러한 문제는 DFS로 풀 수 없다고 생각하여 in..