전체 글

개발 블로그
알고리즘/BOJ

알고리즘 - 백준 2011 (암호코드)

문제 링크: https://www.acmicpc.net/problem/2011 2011번: 암호코드 나올 수 있는 해석의 가짓수를 구하시오. 정답이 매우 클 수 있으므로, 1000000으로 나눈 나머지를 출력한다. 암호가 잘못되어 암호를 해석할 수 없는 경우에는 0을 출력한다. www.acmicpc.net 문제 상근이와 선영이가 다른 사람들이 남매간의 대화를 듣는 것을 방지하기 위해서 대화를 서로 암호화 하기로 했다. 그래서 다음과 같은 대화를 했다. 상근: 그냥 간단히 암호화 하자. A를 1이라고 하고, B는 2로, 그리고 Z는 26으로 하는거야. 선영: 그럼 안돼. 만약, "BEAN"을 암호화하면 25114가 나오는데, 이걸 다시 글자로 바꾸는 방법은 여러 가지가 있어. 상근: 그렇네. 25114를 ..

알고리즘/BOJ

알고리즘 - 백준 1912 (연속합)

문제 링크: https://www.acmicpc.net/problem/1912 1912번: 연속합 첫째 줄에 정수 n(1 ≤ n ≤ 100,000)이 주어지고 둘째 줄에는 n개의 정수로 이루어진 수열이 주어진다. 수는 -1,000보다 크거나 같고, 1,000보다 작거나 같은 정수이다. www.acmicpc.net 문제 n개의 정수로 이루어진 임의의 수열이 주어진다. 우리는 이 중 연속된 몇 개의 수를 선택해서 구할 수 있는 합 중 가장 큰 합을 구하려고 한다. 단, 수는 한 개 이상 선택해야 한다. 예를 들어서 10, -4, 3, 1, 5, 6, -35, 12, 21, -1 이라는 수열이 주어졌다고 하자. 여기서 정답은 12+21인 33이 정답이 된다. 입력 첫째 줄에 정수 n(1 ≤ n ≤ 100,00..

알고리즘/BOJ

알고리즘 - 백준 1699 (제곱수의 합)

문제 링크: https://www.acmicpc.net/problem/1699 1699번: 제곱수의 합 어떤 자연수 N은 그보다 작거나 같은 제곱수들의 합으로 나타낼 수 있다. 예를 들어 11=32+12+12(3개 항)이다. 이런 표현방법은 여러 가지가 될 수 있는데, 11의 경우 11=22+22+12+12+12(5개 항)도 가능하다 www.acmicpc.net 문제 어떤 자연수 N은 그보다 작거나 같은 제곱수들의 합으로 나타낼 수 있다. 예를 들어 11=3^2+1^2+1^2(3개 항)이다. 이런 표현방법은 여러 가지가 될 수 있는데, 11의 경우 11=2^2+2^2+1^2+1^2+1^2(5개 항)도 가능하다. 이 경우, 수학자 숌크라테스는 “11은 3개 항의 제곱수 합으로 표현할 수 있다.”라고 말한다..

알고리즘/BOJ

알고리즘 - 백준 1463 (1로 만들기)

문제 링크: https://www.acmicpc.net/problem/1463 1463번: 1로 만들기 첫째 줄에 1보다 크거나 같고, 106보다 작거나 같은 정수 N이 주어진다. www.acmicpc.net 문제 정수 X에 사용할 수 있는 연산은 다음과 같이 세 가지 이다. X가 3으로 나누어 떨어지면, 3으로 나눈다. X가 2로 나누어 떨어지면, 2로 나눈다. 1을 뺀다. 정수 N이 주어졌을 때, 위와 같은 연산 세 개를 적절히 사용해서 1을 만들려고 한다. 연산을 사용하는 횟수의 최솟값을 출력하시오. 입력 첫째 줄에 1보다 크거나 같고, 106보다 작거나 같은 정수 N이 주어진다. 출력 첫째 줄에 연산을 하는 횟수의 최솟값을 출력한다. 풀이 및 코드 dp문제에 익숙하지 않아 푸는데 시간이 오래걸렸다..

게임 개발/Unreal

[UE4 Error] "The game module '{Project Name}' could not be loaded." 해결 방법

컴퓨터가 망가져서 고친 후에 프로젝트의 초기 설정들이 모두 엉망진창이 되었었다. 특히 Unreal Plugin 미설정으로 인해 프로젝트 파일이 안열리고 팅기고.. 해서 해결 방법에 대해 적어보려고 한다. 그렇게 어렵진 않지만 쉽게 잊을 수 있을 것 같아 정리한다. 에러의 내용은 다음과 같다. "The game module '{ProjectName}' could not be loaded. There may be an operating system error or the module may not be properly set up." Module을 찾을 수 없다는 의미이고 프로젝트가 열릴 때 Module을 사용할 수 없는 상태라는 의미이기도 하다. 본인이 프로젝트에서 어떤 Module을 사용하고 있는 지 먼..

게임 개발/디자인 패턴

Game Programming Design Patterns - 프로토타입 패턴 (1)

프로토타입 디자인 패턴 원형이 되는 인스턴스를 사용하여 생성할 객체의 종류를 명시하고, 새로운 객체를 생성한다. [GoF의 디자인 패턴] 게임들 중 몬스터들과 같이 꾸준하게 스폰되는 Actor들이 존재한다. 이를 구현하기 위해 각 몬스터들의 클래스를 만들어주고, 마구잡이식으로 각 몬스터 클래스마다의 Spawner 클래스를 만들어준다. // Fill out your copyright notice in the Description page of Project Settings. #pragma once #include "CoreMinimal.h" #include "GameFramework/Actor.h" #include "Monster.generated.h" UCLASS() class DESIGNPATTERNS..

게임 개발/디자인 패턴

Game Programming Design Patterns - 관찰자 패턴 (2)

앞 글 관찰자 패턴 (1) 에서는 Observer Pattern의 전반적인 구조와 기능, 구현 등에 대해 정리했다면, 이번 글에서는 관찰자 패턴을 반대하는 사람들의 의견에 대해 정리해보려 한다. 이벤트, 메시지, 데이터 바인딩.. 동적 할당과 큐잉 ? 관찰자 패턴 중 일부는 알림이 있을 때마다 동적 할당을 하거나 큐잉을 하기에 실제로 느릴 수 있다. 그러나 관찰자 패턴은 주로 게임 시스템 내에서도 성능이 크게 중요하지 않은 부분에 사용되고, 그마저도 저번 글에 구현한 예제처럼 충분히 느리지 않게 구현될 수 있다. 관찰자의 목록을 돌면서 가상함수를 호출하여 알림을 보낼 수 있으며 이 또한 정적 호출보다는 느리겠지만, 성능에 큰 제약이 없다면 신경쓰지 않아도 될 정도이다. 성능을 좋게 하기 위해 커플링 된 ..

게임 개발/디자인 패턴

Game Programming Design Patterns - 관찰자 패턴 (1)

관찰자 패턴 Observer Pattern 관찰자 패턴의 특징은 누가 받든 상관없이 알림을 보낼 수 있게 된다는 것이다. 먼저, Event의 enum class, Achievement class 에 대해 설명을 하고 가려한다. Event는 enum으로 구현했고, 원하는 Event가 생길 때 마다 추가해주는 방식이다. enum Event { EVENT_ENTITY_FELL, EVENT_GET_IN_THE_CAR }; Achievement class는 각 업적을 객체로 뽑을 수 있도록 구현했고, 간단하게 그냥 이름, 상태만 지정할 수 있도록 구현했다. enum Achievement_state { NOT_ACHIEVED, ACHIEVED, HIDDEN }; class DESIGNPATTERNSTUDY_API ..

꿀꺽람
김치만두 먹고 공부하기