2026년 1월 31일에 진행한 Denso Create Programming Contest 2026 (AtCoder Beginner Contest 443)에 참가했습니다. 총 5문제를 풀어 퍼포먼스 1713을 기록하였고, 레이팅은 51점 상승한 1345가 되었습니다.
제목 그대로 주어진 문자열에 s를 붙여 출력하면 됩니다.
부터 씩 늘려가면서 더하다가 총합이 이상이 될 때의 경과 횟수를 구하는 문제인데, 시간 복잡도가 이하이므로 시뮬레이션을 돌리면 됩니다.
Chokutter를 마지막으로 연 시각을 라고 했을 때, 이후 Aoki-kun이 지나가는 가장 빠른 시각 를 이분 탐색으로 구합니다. 을 으로 갱신하고, 더 이상 Aoki-kun이 지나가지 않을 때까지 이를 반복합니다. 마지막으로 전체 Chokutter 이용 시간에 을 더해 출력해 주면 답이 됩니다.
두 개의 배열 와 를 만듭니다. 는 앞에서부터 채워나가고, 이며, 입니다. 는 뒤에서부터 채워나가고, 이며, 입니다. 이제 각 인덱스에 대해 의 합을 구해 출력하면 됩니다.
D번까지 매우 빠르게 풀기도 했고, 처음 봤을 때 풀이를 떠올리기 꽤 어려워 포기할까 생각했던 구간입니다. 이 문제를 풀지 않았다면 퍼포먼스 1290점대 초반으로 레이팅 변화가 없었겠네요. 입력을 받으면서 각 열별로 벽이 있는 가장 낮은 곳을 기록합니다. 다음으로 맨 밑에서 한 칸씩 올라가며 바로 위 행에서 도달할 수 있는 곳을 찾습니다. 이동하고자 하는 칸에 벽이 없다면 바로 이동 가능하고, 벽이 있다면 그 벽이 해당 열의 맨 밑 벽일 때에 한하여 그 열 전체로 이동할 수 있습니다.
E를 푼 것이 좋은 선택이 되어 레이팅을 50점 이상 올렸습니다. 겨울방학 중 코드포스 1700, 앳코더 1300을 찍는 것이 목표였는데, 하나는 이루게 되었네요.