문제 3194 · 비트 IV
편의점의 양방향 선반 코드
| 시간 제한 | 메모리 제한 | 제출 | 정답 | 맞힌 사람 | 정답 비율 |
|---|---|---|---|---|---|
| 1000ms / 테스트 (언어별 보정은 아래 표) | 메모리: 측정하지 않음(브라우저 채점) | 0 | 0 | 0 | 0.00% |
문제
동네 편의점에서는 양쪽 통로에서 함께 사용하는 작은 이동식 선반을 준비하고 있다. 직원은 선반에 붙일 안내표를 만들기 전에 상품 묶음마다 임시 코드를 하나씩 적었다. 임시 코드는 영문 대문자로만 이루어진 문자열이다. 이번 작업에서는 코드에 적힌 문자를 바꾸거나 일부를 지우지 않고, 현재 코드가 정해진 조건을 만족하는지만 확인한다. 편의점이 정한 조건은 코드의 문자 순서를 뒤집어도 원래 코드와 정확히 같아야 한다는 것이다. 여기서 순서를 뒤집는다는 것은 마지막 문자를 첫 번째로, 끝에서 두 번째 문자를 두 번째로 놓는 방식으로 문자열 전체를 다시 나열하는 것을 뜻한다. 문자의 실제 모양을 거울에 비추거나 회전하는 것은 고려하지 않는다. 오직 문자들이 나열된 순서만 비교한다. 예를 들어 코드가 KTK라면 순서를 뒤집어도 KTK이므로 조건을 만족한다. 반면 코드가 KTT라면 순서를 뒤집은 결과가 TTK이므로 조건을 만족하지 않는다. 문자 하나로 이루어진 코드는 항상 조건을 만족한다. 길이가 짝수인 코드와 홀수인 코드에 모두 같은 규칙을 적용하며, 홀수 길이 코드의 가운데 문자는 그대로 가운데에 남는다. 직원은 입력된 코드 중 조건을 만족하는 코드가 몇 개인지 알고 싶다. 같은 코드가 여러 번 나타나더라도 각각 서로 다른 상품 묶음에 붙일 코드이므로 별개로 센다. 코드끼리 비교하여 하나를 고르는 작업은 하지 않으며, 각 코드가 자기 자신을 뒤집은 결과와 같은지만 판단한다. 따라서 모든 코드가 조건을 만족할 수도 있고, 어느 코드도 조건을 만족하지 않을 수도 있다. 주어진 N개 코드 중 조건을 만족하는 개수를 출력한다. 조건을 만족하는 코드가 없으면 0을 출력한다.
입력
첫째 줄에 코드의 개수를 나타내는 정수 N이 주어진다. 1 ≤ N ≤ 1,000이다. 다음 N개 줄에 코드가 한 줄에 하나씩 주어진다. 각 코드는 영문 대문자 A부터 Z까지로만 이루어진 길이 1 이상 100 이하의 문자열이며, 공백을 포함하지 않는다.
출력
문자 순서를 뒤집어도 원래 문자열과 같은 코드의 개수를 정수 하나로 출력한다. 해당하는 코드가 없으면 0을 출력한다.
예제 입력 1
5 R NOON SHELF ABBA ABCA
예제 출력 1
3
예제 입력 2
3 BOX MILK TEA
예제 출력 2
0
예제 입력 3
4 QQ QQ MAM Z
예제 출력 3
4
힌트 펼치기
- 문자열의 양 끝에서 같은 거리만큼 떨어진 문자들을 비교할 수 있다.
관련 서재 장
알고리즘 분류
문자열구현풀이 작성
연습 채점은 공개 테스트로 실행합니다. 인증 제출은 코드를 봉인한 뒤 새 입력을 실행하고 서버에서 출력을 대조하며 코드와 판정을 저장합니다.
풀이를 제출하면 여기에서 결과를 확인할 수 있습니다.
연습 기록은 이 브라우저에 최근 50개를 저장합니다. 인증 기록은 내 제출에서 확인하세요.
이 브라우저의 연습 기록
언어별 제한
테스트 케이스마다 새 전역에서 실행하며 준비 시간은 제외합니다. 시간 초과된 출력은 검사하지 않습니다. 브라우저·기기 성능에 따라 실행 시간이 달라집니다.
| 언어 | 엔진(버전) | 시간 제한 | 메모리 |
|---|---|---|---|
| javascript | 사용자 브라우저 JavaScript 엔진 (버전은 브라우저에 따라 다름) | 1000ms / 테스트 | 측정하지 않음(브라우저 채점) |
| python | Pyodide 314.0.7 (CPython 3.14 WASM) | 5000ms / 테스트 | 측정하지 않음(브라우저 채점) |