본문 바로가기

COMFORT

(16)
REC-0-RDER #2 개발하던 도중 쉽지 않은 난관에 부딫혔다. 지금까지 찍어온 도트들은 다 크기가 그렇게 크지 않아서 작업시간이 길지 않았는데, 이제는 지금껏 미뤄왔던 보스 패턴, 배경 같은 고해상도 작업만이 남아있었던 것이다. 이것까지 일일이 직접 만들면 대학 졸업할때까지 완성될지도 미지수여서 대책을 찾아야 했다. 그래서 알아보던 도중 발견한 것이 PixelOver라는 툴이었다. 도트 그래픽에 최적화된 해상도 조절이나 각도 변환, 관절 애니메이션 작업 등 다양한 기능이 있는 걸 보고 바로 구매했다. 간단하게 첫 보스의 목 움직이기를 만들어 봤다. 아마 이 툴로 패턴들을 작업하게 될듯? 배경 같은 경우 에셋으로 때워 보기로 했고, 찾던 도중 꽤 괜찮은 동굴 스프라이트 이미지를 발견했다. 게다가 저작권 라이선스도 CC0으로 ..
REC-0-RDER #1 사실 오래전부터 구상중이었고, 만들기 시작한지도 꽤 됐지만 블로그에도 개발 근황을 간간히 올려두면 좋을 것 같아서 글을 써본다. 1년 전, 이 게임의 대략적인 구상은 다음과 같았다. 호기심 많은 로봇과 함께 지하를 탐험하는 메트로배니아 게임을 만들어 보고 싶다! 라는 것에서 시작해서 대략적인 게임의 틀을 생각했다. 주인공 옆에 같이 다니는 0호, 보스로 등장하는 1호, 2호, 3호 .. 친구에게 부탁해서 멋진 컨셉아트들을 받았다. 하지만 그 친구도 꽤 바쁘게 살기 때문에 개발까지 같이 하기는 무리였고, 결국 아트의 부재로 인해 이 기획은 "언젠가는 만들어야지"에서 그쳤다. 그리고 시간이 지난 뒤 2023년 초.. 그냥 아트도 직접 하면서 천천히 만들어 보자는 생각으로 작게 프로젝트를 진행했다. 제일 먼저..
코포 일기 : Codeforces Round 909 (Div. 3) https://codeforces.com/contest/1899 Dashboard - Codeforces Round 909 (Div. 3) - Codeforces codeforces.com 블로그에 글을 쓰는 것도 코포를 하는 것도 정말 오랜만에 한다. 재활훈련(?)을 하는 느낌으로 딥3에 참여했고, 나쁘지 않은 성적이 나왔다. 문제들은 전체적으로 지문이 길지만 풀이는 심플한 문제들로 이루어져 있었던 것 같다. A. Game with Integers 주어진 n에서 Vanya와 Vova가 번갈아 가면서 1을 더하거나 빼고, Vanya의 턴이 끝났을 때 3의 배수를 만들면 Vanya의 승리고, 10턴 안에 3의 배수를 만들 수 없다면 Vova의 승리라는 룰이다. $n \mod 3 = 0$인 경우 Vova가 ..
[백준 1376] 민식우선탐색 : 세그먼트 트리의 활용 https://www.acmicpc.net/problem/1376 1376번: 민식우선탐색 첫째 줄에는 정점의 개수 N(
[백준 17424] 2xN 타일링과 쿼리 : 세그먼트 트리의 활용 https://www.acmicpc.net/problem/17424 17424번: 2xN 타일링과 쿼리 첫째줄에 N과 쿼리의 수를 나타내는 정수 Q가 공백으로 구분하여 주어진다. (1 ≤ N ≤ 105​​​​, 1 ≤ Q ≤ 2 x 105) 둘째줄부터 Q줄에 걸쳐 2가지 종류의 쿼리가 주어진다. 각 쿼리는 t x y꼴로 주 www.acmicpc.net 처음으로 푼 solved.ac 다이아 문제기 때문에 풀이를 써 보려고 한다. 개요 먼저 문제를 이해해야 하는데, 평범한 2xN 타일링과는 다르게 해당 위치에 있는 칸을 없애거나 다시 만드는 쿼리가 계속해서 주어지고, 쿼리마다 타일링 경우의 수를 출력해야 한다. 계속해서 쿼리를 받으며 업데이트 해주는 형태이기 때문에 세그먼트 트리가 생각난다. 하지만 세그먼트..
코포 일기 : Codeforces Round #733 (Div. 2) 대회 결과 4솔로 저번 Codeforces Round #726 보다 레이팅이 더 많이 올라갔다. 전체적인 느낌은 풀이는 생각이 나는데 구현이 꽤 까다로웠다. E번도 case work를 해야 하는 느낌이 들기도 하고, 전체적으로 구현을 연습하기에 좋은 문제들이었다. 결과는 꽤 만족스러웠던 것 같다. A : Binary Decimal 각 자릿수중에 최댓값을 그대로 출력하면 된다. 자릿수별로 끊어서 생각하면 매우 쉽게 알 수 있다, B : Putting Plates (1,1)에서 시작해서 간격을 띄워 가며 접시를 설치하는 것을 생각하면 된다. 풀이는 매우 쉬우나 구현이 약간 더러웠다. C : Pursuit 내 점수 배열을 A, Ilya의 점수 배열을 B라고 할 때, A에는 100, B에는 0을 A의 점수 합 ..
코포 일기 : Codeforces Round #726 (Div.2) 대회 결과 실시간에서는 5솔에 성공. 그러나 채점도중 채점 데이터에 의해 E1번이 터졌다. 확인해보니 등식 하나를 잘못 쓰는 어이 없는 실수였다. 이 코드로 대회 도중의 데이터를 통과한 게 신기했다. 어찌됐든 간에 지난번보다 훨씬 나은 결과였고, 나름대로 만족스럽다. A : Arithmetic Array 배열의 평균이 1이라는 것은 다르게 말하면 모든 원소의 합 = 원소의 갯수 라는 것이다. 그리고 0을 추가하면 원소의 갯수가 1 추가되므로 평균이 1보다 클때는 원소의 합 - 원소의 갯수만큼의 0을 추가해줘야 평균이 1이 된다. 평균이 1보다 작을 때는 항상 원소의 합 + x = 원소의 갯수 + 1 을 만족시키는 음이 아닌 정수 x가 항상 존재하므로 1개의 원소를 추가하며, 정확히 1일때는 추가할 필요가..
코포 일기 : Codeforces Round #722 (Div. 2) https://codeforces.com/ Codeforces codeforces.com 대회 결과 1솔밖에 못하고 90점이 떨어졌다. B번은 다 풀어놓고 사소한 반례를 못 찾았으며, C번은 그리디 + dfs로 삽질하다 그리디가 안된다는 걸 깨닫고 뒤늦게 tree dp를 구현하다가 시간이 끝났다. 대회가 어려웠던 건지 그냥 내가 못한건지 생각해보면 후자쪽에 가까운 것 같다. 여러모로 분발할 필요가 느껴졌다. A. Eshag Loves Big Arrays 최솟값과 그 다음으로 작은 값을 선택하고 연산하면 최솟값만 남고 다 지워진다. 그냥 최솟값의 갯수를 출력하는 문제 B. Sifid and Strange Subsequences 두 양수의 차의 절댓값은 항상 최댓값보다 작기 때문에 이상한 수열에 양수가 2개..