본문 바로가기

분류 전체보기76

2021 이븐아이 게임톤 1회 후기 이븐아이(eveni) 겜설팅, 게임업계 온라인 취업 컨설팅 1대1 맞춤형 게임업계취업전문컨설팅, 무스펙 취준생의 치트키 evenigame.imweb.me 게임톤을 신청하게 된 계기 이븐아이 게임톤을 신청하기 전에 스마일게이트에서 주최한 7월달 게임잼을 참가했었다. 해당 게임잼에서 기획자, 디자이너, 개발자 이렇게 세 직군이 팀을 짜서 게임을 개발한 기억이 이때 기획자, 디자이너와 협업하면서 게임을 만드는 것이 즐거워서 기억으로 남아서 신청하게 되었다. 팀을 이뤄 협업으로 게임 개발을 해보면서 배우고 느낀 점들 게임톤을 진행하면서 가장 도전적인 시도가 두 가지라고 있었다. 첫번째는 짧은 기간 동안에 유니티 에디터 툴을 만든 것이고, 두번째는 게임 내에서 등장하는 맵과 장애물을 3D모델을 사용하지 않고 직접.. 2021. 9. 26.
[Design Pattern] 싱글톤 패턴(Singleton pattern) 싱글톤 패턴(Singleton Pattern) 이란? 소프트웨어 디자인 패턴에서 싱글턴 패턴(Singleton pattern)을 따르는 클래스는, 생성자가 여러 차례 호출되더라도 실제로 생성되는 객체는 하나이고 최초 생성 이후에 호출된 생성자는 최초의 생성자가 생성한 객체를 리턴한다. 이와 같은 디자인 유형을 싱글턴 패턴이라고 한다. 주로 공통된 객체를 여러개 생성해서 사용하는 DBCP(DataBase Connection Pool)와 같은 상황에서 많이 사용된다. 즉, 프로그램에서 한 번만 객체가 생성되고 이후에는 최초 생성된 객체를 참조하는 형식의 디자인 패턴이다. 싱글톤 패턴을 사용하는 이유 및 문제점 사용하는 이유? 오직 하나의 인스턴스만 사용하므로 메모리적 측면에서 이득이 있다. 단 한 번만 ne.. 2020. 5. 1.
[BOJ 2143] 두 배열의 합 https://www.acmicpc.net/problem/2143 2143번: 두 배열의 합 첫째 줄에 T(-1,000,000,000 ≤ T ≤ 1,000,000,000)가 주어진다. 다음 줄에는 n(1 ≤ n ≤ 1,000)이 주어지고, 그 다음 줄에 n개의 정수로 A[1], …, A[n]이 주어진다. 다음 줄에는 m(1≤m≤1,000)이 주어지고, 그 다음 줄에 m개의 정수로 B[1], …, B[m]이 주어진다. 각각의 배열 원소는 절댓값이 1,000,000을 넘지 않는 정수이다. www.acmicpc.net n과 m의 값이 크지 않기 때문에 각 배열의 합을 구하는 것은 가능하다. 이를 이용하여 A배열과 B배열의 연속합을 저장해둔 배열을 만들고, 이를 정렬한 뒤 각 합을 따로 합쳐보면서 개수를 세면 .. 2020. 4. 20.
[BOJ 1948] 임계경로 https://www.acmicpc.net/problem/1948 1948번: 임계경로 첫째 줄에 도시의 개수 n(1 ≤ n ≤ 10,000)이 주어지고 둘째 줄에는 도로의 개수 m(1 ≤ m ≤ 100,000)이 주어진다. 그리고 셋째 줄부터 m+2줄까지 다음과 같은 도로의 정보가 주어진다. 처음에는 도로의 출발 도시의 번호가 주어지고 그 다음에는 도착 도시의 번호, 그리고 마지막에는 이 도로를 지나는데 걸리는 시간이 주어진다. 도로를 지나가는 시간은 10,000보다 작거나 같은 자연수이다. 그리고 m+3째 줄에는 지도를 그리는 사람들이 www.acmicpc.net 위 문제는 위상 정렬을 통해서 만나는 최소의 값과 해당 값으로 도달할 수 있는 간선의 개수를 구하는 문제이다. 처음에 도로의 수가 무엇을 .. 2020. 4. 20.
[BOJ 2623] 음악프로그램 https://www.acmicpc.net/problem/2623 2623번: 음악프로그램 첫째 줄에는 가수의 수 N과 보조 PD의 수 M이 주어진다. 가수는 번호 1, 2,…,N 으로 표시한다. 둘째 줄부터 각 보조 PD가 정한 순서들이 한 줄에 하나씩 나온다. 각 줄의 맨 앞에는 보조 PD가 담당한 가수의 수가 나오고, 그 뒤로는 그 가수들의 순서가 나온다. N은 1이상 1,000이하의 정수이고, M은 1이상 100이하의 정수이다. www.acmicpc.net 위 문제도 위상 정렬을 해서 차례대로 출력을 하면 되는 문제이지만, 순서를 모를 경우를 예외처리해주어야 한다. 배열에 순서대로 위상정렬의 결과를 저장할 때 배열의 길이와 전체 가수의 개수가 맞지 않는다면 제대로 된 순서를 모르는 것이기 때문에 .. 2020. 4. 20.
[BOJ 2252] 줄 세우기 https://www.acmicpc.net/problem/2252 2252번: 줄 세우기 첫째 줄에 N(1≤N≤32,000), M(1≤M≤100,000)이 주어진다. M은 키를 비교한 회수이다. 다음 M개의 줄에는 키를 비교한 두 학생의 번호 A, B가 주어진다. 이는 학생 A가 학생 B의 앞에 서야 한다는 의미이다. 학생들의 번호는 1번부터 N번이다. www.acmicpc.net 위 문제는 전형적인 위상 정렬문제이다. 위상 정렬 알고리즘대로 풀면 쉽게 풀 수 있는 문제이다. #include #include #include #define max(a, b) ((a) > (b) ? (a) :(b)) using namespace std; int n, m; int indgree[100001]; int main(.. 2020. 4. 20.
[BOJ 1005] ACM Craft https://www.acmicpc.net/problem/1005 1005번: ACM Craft 첫째 줄에는 테스트케이스의 개수 T가 주어진다. 각 테스트 케이스는 다음과 같이 주어진다. 첫째 줄에 건물의 개수 N 과 건물간의 건설순서규칙의 총 개수 K이 주어진다. (건물의 번호는 1번부터 N번까지 존재한다) 둘째 줄에는 각 건물당 건설에 걸리는 시간 D가 공백을 사이로 주어진다. 셋째 줄부터 K+2줄까지 건설순서 X Y가 주어진다. (이는 건물 X를 지은 다음에 건물 Y를 짓는 것이 가능하다는 의미이다) 마지막 줄에는 백준이가 승리하기 위해 건 www.acmicpc.net 위 문제는 [BOJ 1516] 게임 개발 와 거의 유사한 문제이다. 똑같이 위상정렬을 통해 건물이 지어지는 시간을 갱신하여 출력하면.. 2020. 4. 20.
[BOJ 1516] 게임 개발 https://www.acmicpc.net/problem/1516 1516번: 게임 개발 첫째 줄에 건물의 종류 수 N(1 ≤ N ≤ 500)이 주어진다. 다음 N개의 줄에는 각 건물을 짓는데 걸리는 시간과 그 건물을 짓기 위해 먼저 지어져야 하는 건물들의 번호가 주어진다. 건물의 번호는 1부터 N까지로 하고, 각 줄은 -1로 끝난다고 하자. 각 건물을 짓는데 걸리는 시간은 100,000보다 작거나 같은 자연수이다. www.acmicpc.net 위 문제는 위상 정렬을 이용하여 푸는 문제이다. 위상 정렬이란 그래프에서 진입 차수가 0인 노드를 차례대로 제거해나가는 형식의 정렬이다. 진입 차수가 0이 되는 순서대로 출력을 하는것이다. 위 문제에 대입해보자면, 어떤 건물을 짓기 위해 지어야하는 건물들의 관계를.. 2020. 4. 20.
[BOJ 1806] 부분합 https://www.acmicpc.net/problem/1806 1806번: 부분합 문제 10,000 이하의 자연수로 이루어진 길이 N짜리 수열이 주어진다. 이 수열에서 연속된 수들의 부분합 중에 그 합이 S 이상이 되는 것 중, 가장 짧은 것의 길이를 구하는 프로그램을 작성하시오. 입력 첫째 줄에 N (10 ≤ N < 100,000)과 S (0 < S ≤ 100,000,000)가 주어진다. 둘째 줄에는 수열이 주어진다. 수열의 각 원소는 공백으로 구분되어져 있으며, 10,000이하의 자연수이다. 출력 첫째 줄에 구하고자 하는 최소의 길 www.acmicpc.net 위 문제를 전체 탐색을 하면 O(N^2)으로 N이 100000이어서 시간초과가 난다. 투 포인터 알고리즘을 이용하여 풀 수 있다. 배열에 .. 2020. 4. 17.