kaito-akabane.dev

Home Posts
  • AtCoder [ABC 458] C. C Stands for Center
    실행 시간 제한: 2초 / 메모리 제한: 1024 MiB 배점: 300점 영대문자로 이루어진 문자열 S이 주어진다. 이하의 조건을 모두 만족하는 S의 부분문자열(연속하는 부분열)이 몇 개 존재하는지 구하시오. 홀수개의 문자로 이루어진다. 중앙의 문자가 C이다. 엄밀히 말하면, 추출한 부분문자열이 l문자로 이루어질 때, (l+1)/2번째 문자가 C이다. S는 영대문자로 이루어진 길이 1 이상 5\times10^5 이하의 문자열 입력은 아래의 형식으로 표준입력을 통해 주어진다. 답을 출력하라. 이 입력에서 S=ABCCA이다. 문제의 조건을 만족하는 부분문자열은 아래의 5개이다. S에서 1번째 문자부터 5번째 문자까지 추출한 ABCCA S에서 2번째 문자부터 4번째 문자까지 추출한 BCC S에서 3번째 문자부터 3번째 문자까지 추출한 C S에서 3번째 문자부터 5번째 문자까지 추출한 CCA S에서 4번째 문자부터 4번째 문자까지 추출한 C 문자열 S의 i번째 문자가 C일 때, 그 C가 중간에 위치하는 부분문자열이 몇 개 존재하는지 생각한다. C의 좌측에는 문자가 i-1개, 우측에는 문자가 |S|-i개 존재한다.
    2026년 5월 17일
  • AtCoder [ABC 458] B. Count Adjacent Cells
    실행 시간 제한: 2초 / 메모리 제한: 1024 MiB 배점: 200점 H행 W열의 격자가 존재한다. 위에서 i번째 행, 왼쪽에서 j번째 열의 칸을 칸 (i,j)라고 한다. 칸 (x1,y1)와 칸 (x2,y2)의 변이 인접한다고 함은, |x1-x2|+|y1-y2|=1이 성립함을 말한다. 모든 칸에 대하여 그 칸과 변이 인접하는 칸의 개수를 구하시오. 1\leq H,W\leq50 입력되는 값은 모두 정수 입력은 아래의 형식으로 표준입력을 통해 주어진다. 답을 아래의 형식으로 출력하라. 이때, x{i,j}는 칸 (i,j)와 변이 인접하는 칸의 개수를 나타낸다. 칸 (1,5)와 변이 인접하는 칸은 칸 (1,4),(2,5)의 2개이다. 칸 (2,3)와 변이 인접하는 칸은 칸 (1,3),(2,2),(2,4),(3,3)의 4개이다. 칸 (4,2)와 변이 인접하는 칸은 칸 (3,2),(4,1),(4,3)의 3개이다. 칸 (i,j)와 변이 인접하는 칸은 아래의 4가지이다. 上: 칸 (i-1,j) 下: 칸 (i+1,j) 左: 칸 (i,j-1) 右: 칸 (i,j+1) 따라서 4방향으로 델타 탐색을 수행하여 변이 인접하는 칸의 개수를 구한다.
    2026년 5월 17일
  • AtCoder [ABC 458] A. Chompers
    실행 시간 제한: 2초 / 메모리 제한: 1024 MiB 배점: 100점 영소문자로 이루어진 문자열 S와 양의 정수 N이 주어진다. S의 길이는 2N+1 이상이다. S를 앞뒤로 N문자씩 제거하여 얻어지는 문자열을 구하시오. S는 영소문자로 이루어진 문자열 N은 정수 2N+1\leq |S|\leq30 1\leq N\leq10 입력은 아래의 형식으로 표준입력을 통해 주어진다. 답을 출력하라. chemotherapy의 앞부분 3문자 (che)와 뒷부분 3문자 (apy)를 제거하면 mother를 얻을 수 있다. i=1,2,\dots,|S|의 순서대로 다음 작업을 수행한다: N<i<|S|-N일 때 문자열 S의 i번째 문자를 출력한다. 그 이외의 경우에는 출력하지 않고 건너뛴다.
    2026년 5월 17일
© 2026 Kaito Akabane
Go to Kaito Akabane's GitHub repo Follow Kaito Akabane on Twitter