실력 군대 전역하고 지난 2년간 여러 경험을 해보면서 시야가 넓어지긴 했지만, 게임 개발 실력이 성장했는가를 되돌아보면 쉽게 그렇다는 말이 나오지 않는다. 이번에 인턴십을 지원해보면서 나는 아직 부족하다는 것을 느꼈다. 처음엔 3인 이하의 인디게임 위주로 작업했던 나의 경험을 잘 어필하지 못했다고 생각했다. 그러나 사실 기업이나 취업은 둘째치고 장기적으로 봤을 때 게임 개발에 임하는 나의 태도, 크게 보면 프로그래밍에 대한 나의 태도에 문제가 있었다. 나는 어느 정도 실력이 된 후에 그 실력으로 만들 수 있는 게임들만 만드려고 했다. 변명하자면, 최근 몇 년간 재밌는 게임을 만들고 싶다는 욕심에 목표를 크게 잡았지만 자꾸 실력이 부족해 프로젝트를 뒤엎으니 욕심을 덜어야겠다는 생각이 들었다. 그래서 뭔가를..
분류 전체보기
문제 https://www.acmicpc.net/problem/10986 10986번: 나머지 합 수 N개 A1, A2, ..., AN이 주어진다. 이때, 연속된 부분 구간의 합이 M으로 나누어 떨어지는 구간의 개수를 구하는 프로그램을 작성하시오. 즉, Ai + ... + Aj (i ≤ j) 의 합이 M으로 나누어 떨어지는 (i, j) www.acmicpc.net 풀이 방법 [i, j) 부분 구간의 합이 M으로 나누어 떨어지는 i, j 쌍의 개수를 구하는 문제이다. 배열의 크기 N과 나누는 수 M이 큰 숫자이기 때문에 모든 경우를 계산해보는 방법은 불가능하다. 때문에 배열을 입력 받을 때 부분 합을 미리 계산해놓는다. PrefixSum[j] - PrefixSum[i] % M = 0이 만족하면 Prefix..
포인터를 사용하는 이유 포인터가 왜 필요할까? 포인터를 왜 쓸까? 포인터를 왜 사용할까? 에 대해서 생각해보기 전에... 포인터에 대해서 잘 모른다면 아래 '포인터란 무엇인가'부터 읽어보자. 이미 배경지식이 있다면 상관없다. 화씨를 섭씨로 바꾸는 프로그램을 작성한다고 가정해보자. #include // 화씨 온도를 입력받아 섭씨단위로 바꿔준다. void ToCelsius(double F) { F = (F - 32)/1.8; } // 물론 이렇게 반환한 값을 호출부에서 활용해도 된다. // 하지만 본 글에서는 위의 구현에 대해서 다룬다. double ToCelsius2(double F) { return (F-32)/1.8; } int main() { double temperature = 32; // 화씨 3..
문제 https://www.acmicpc.net/problem/2001 2001번: 보석 줍기 첫째 줄에 n, m, K가 주어진다. 다음 K개의 줄에는 보석이 있는 섬의 번호가 주어진다. 다음 m개의 줄에는 각 다리에 대한 정보를 나타내는 세 자연수 a, b, c(1 ≤ c ≤ 100)가 주어진다. 이는 a번 섬과 www.acmicpc.net 풀이 방법 1194번 달이 차오른다, 가자와 비슷한 문제이다. 이 문제에서는 열쇠를 갖고 이동하는 것이 아니라 보석을 줍고 이동하며, 시작점으로 돌아왔을때 보석의 최대 개수를 출력해야한다. 1194번과 유사하게 보석이 최대 14개이므로 보유한 보석을 최대16,384 (1