반응형 [PCCP] Lv0: 캐릭터의 좌표(120861) 해설 문제- 문제 링크: 캐릭터의 좌표 코드(C언어)solution 1)더보기#includesolution 2)더보기#include (C++)solution 1)- N: keyinput의 길이- 반복문은 keyinput 길이만큼 반복하고, 내부 연산은 모두 시간 복잡도가 O(1)- 최종 시간 복잡도: O(N)더보기#include #include using namespace std;vector solution(vector keyinput, vector board){ // 현재 위치를 나타 내는 크기가 2이고 값이 모두 0인 벡터 선언 vector v(2,0); // 키 입력순으로 캐릭터 이동 for(string s : keyinput){ if (s=="up" &&.. 2024. 12. 25. [PCCP] Lv2: 카펫(42842) 해설 문제- 문제 링크: 카펫 코드(C언어)solution 1)더보기#includesolution 2)더보기#include (C++)solution 1)- N: total_size- 한 변의 최대 길이는 sqrt(N)이므로 최종 시간 복잡도는 O(sqrt(N))더보기#include #include using namespace std;vector solution(int green, int white) { // 격자의 총 개수 (파란색 격자 + 흰색 격자) int total_size = green + white; // 세로 길이의 범위는 3부터 (파란색 격자 + 흰색 격자)의 제곱근 for (int vertical = 3; vertical #include using namespace std;void pri.. 2024. 12. 25. [PCCP] Lv2: 롤케이크 자르기(132265) 해설 문제- 문제 링크: 롤케이크 자르기 코드(C언어)solution 1)더보기#includesolution 2)더보기#include (C++)solution 1)- N: topping의 길이- topping의 길이만큼 반복문을 수행하므로 시간 복잡도는 O(N)- 내부 연산들은 모두 O(1)- 최종 시간 복잡도: O(N)더보기#include #include #include #include using namespace std;int solution(vector topping) { int answer = 0; // 남아있는 각 토핑의 개수 unordered_map topping_cnt; // 절반에 속한 토핑의 종류 unordered_set half_topping; // 카운터에 각 토핑의 개수를 저장.. 2024. 12. 25. [PCCP] Lv2: 이진 변환 반복하기(70129) 해설 문제- 문제 링크: 이진 변환 반복하기 해설- 자료구조: - 시간복잡도: (풀이과정)1) 2) 3) 4) 코드(C언어)solution 1)더보기#includesolution 2)더보기#include (C++)solution 1)- N: 주어진 수- while 문에서 N이 1이 될 때까지 2로 나누므로 시간 복잡도는 O(logN)- count() 호출시 필요한 시간 복잡도는 O(N)- 최종 시간 복잡도: O(NlogN)더보기#include #include #include #include using namespace std;vector solution(string s) { int transforms = 0; int removedZeros = 0; // s가 "1"이 될 때까지 계속 반복 .. 2024. 12. 25. [PCCP] 알고리즘 - 시뮬레이션 1. 이론- 구현에 중점- 접근 방식 - 하나의 문제를 여러개로 분리 - 예외처리가 필요시 독립함수로 구현- 기본 구현 - 행렬연산: 덧셈, 뺄셈, 곱셈 - 전치행렬: arr[i][j] = arr[j][i] - 좌표연산: 이차원 배열 && 오프셋값(dx, dy) - 좌우대칭: arr[i][j] = arr[i][(N-1)-j] - 반시계 90도 회전연산: arr[i][j] = arr[j][(N-1)-i]- 예제: 배열 회전, 행렬곱, 전치행렬, 달팽이수열 2. 언어별 문법 3. 추천 문제 - Lv 2: 이진 변환 반복하기(70129) / 이진 변환 반복하기(70129) 해설- Lv 2: 롤케이크 자르기(132265) / 롤케이크 자르기(132265) 해설- Lv 2.. 2024. 12. 15. [C++로 배우는 게임 엔진 개발] Day 25: 3D 물리 엔진 기초 (Bullet) 3D 물리 엔진 기초 (Bullet)오늘은 Bullet 물리 엔진을 사용하여 3D 게임 오브젝트 간의 물리적 상호작용을 구현하는 방법을 학습하겠습니다. Bullet 물리 엔진은 게임 개발에서 널리 사용되는 물리 엔진으로, 현실적인 물리 시뮬레이션을 제공합니다.1. Bullet 설치 및 설정먼저 Bullet 물리 엔진을 설치하고 프로젝트에 설정합니다. Bullet 다운로드 및 설치Bullet 공식 GitHub 페이지에서 Bullet 소스 코드를 다운로드합니다.다운로드한 소스 코드를 프로젝트 디렉토리로 이동합니다.Bullet 소스 코드를 빌드하고 설치합니다.CMakeLists.txt 수정CMakeLists.txt 파일에 Bullet 라이브러리를 추가합니다.cmake_minimum_required(VERSIO.. 2024. 8. 1. [C++ 게임 개발 시리즈] Day 12: 2D 물리 엔진 기초 (Box2D) 2D 물리 엔진 기초 (Box2D)물리 엔진은 게임에서 현실적인 움직임과 상호작용을 구현하는 데 사용됩니다. 오늘은 2D 물리 엔진인 Box2D를 사용하여 간단한 물리 효과를 구현하는 방법을 학습하겠습니다.Box2D 설치 및 설정Box2D는 2D 물리 엔진으로, 다양한 게임에서 물리 시뮬레이션을 제공하는데 사용됩니다.Box2D 설치Box2D 다운로드:Box2D GitHub 페이지에서 최신 버전을 다운로드합니다.Box2D 빌드:CMake를 사용하여 Box2D를 빌드합니다. 터미널이나 명령 프롬프트에서 다음 명령어를 실행합니다. cmake -Bbuild -H.cmake --build buildBox2D 라이브러리 포함:빌드된 Box2D 라이브러리를 프로젝트에 포함합니다.Box2D 기본 사용법Box2D는 물리.. 2024. 8. 1. 이전 1 다음 반응형