문제 3468 · 비트 II
운동 순서표 대조
| 시간 제한 | 메모리 제한 | 제출 | 정답 | 맞힌 사람 | 정답 비율 |
|---|---|---|---|---|---|
| 1000ms / 테스트 (언어별 보정은 아래 표) | 메모리: 측정하지 않음(브라우저 채점) | 0 | 0 | 0 | 0.00% |
문제
한 헬스장에서는 회원에게 오늘 사용할 운동 기구의 순서표를 제공한다. 순서표에는 N번의 운동에 사용할 기구가 차례대로 적혀 있다. 회원이 운동을 마치면 출입 단말기는 실제로 사용한 기구도 같은 길이의 기록으로 만든다. 관리자는 예정된 순서표와 실제 기록을 대조하여 어떤 차례에서 다른 기구를 사용했는지 확인하려 한다. 기구의 종류는 알파벳 대문자 한 글자로 표시한다. 같은 문자는 같은 종류의 기구를 뜻하고, 다른 문자는 서로 다른 종류를 뜻한다. 예정된 순서표를 문자열 A, 실제 기록을 문자열 B라고 한다. 두 문자열의 길이는 모두 N이며, 왼쪽부터 첫 번째 문자가 첫 번째 운동에 해당한다. 같은 종류의 기구를 여러 번 사용하는 것도 가능하므로 같은 문자가 여러 위치에 나타날 수 있다. 대조할 때는 반드시 같은 차례의 문자끼리만 비교한다. A의 i번째 문자와 B의 i번째 문자가 다르면 i번째 운동에서 예정과 다른 기구를 사용한 것이다. 실제 기록에서 앞이나 뒤에 같은 문자가 등장하더라도 해당 차례가 일치한 것으로 바꾸지 않는다. 기록에서 문자를 삭제하거나 순서를 바꾸는 작업도 하지 않는다. 두 기록은 이미 각 운동 차례에 맞게 정리되어 있다. 관리자는 서로 다른 차례의 총개수와, 그중 가장 먼저 등장하는 차례의 번호를 보고서에 적으려 한다. 차례 번호는 왼쪽부터 1, 2, …, N이다. 서로 다른 차례가 여러 개라면 가장 작은 번호 하나만 보고한다. 두 문자열이 완전히 같아서 서로 다른 차례가 하나도 없으면 총개수와 첫 차례 번호를 모두 0으로 기록한다. 예정된 순서표와 실제 기록이 주어질 때 이 두 값을 구하는 프로그램을 작성한다. 문자열의 각 문자는 하나의 운동 차례를 나타내므로 기구의 이름이나 실제 운동 시간은 계산에 사용하지 않는다.
입력
첫째 줄에 운동 횟수를 나타내는 정수 N이 주어진다. 1 ≤ N ≤ 1,000이다. 둘째 줄에 예정된 순서표 A가 주어진다. 셋째 줄에 실제 기록 B가 주어진다. A와 B는 각각 길이가 정확히 N이며 알파벳 대문자 'A'부터 'Z'까지만 포함한다. 문자열 안에는 공백이 없다.
출력
예정과 다른 기구를 사용한 차례의 총개수와 그중 가장 작은 차례 번호를 공백으로 구분하여 한 줄에 출력한다. 다른 차례가 없으면 0 0을 출력한다.
예제 입력 1
6 ABACCD ABBCAD
예제 출력 1
2 3
예제 입력 2
4 ZZAZ ZZAZ
예제 출력 2
0 0
예제 입력 3
1 A B
예제 출력 3
1 1
힌트 펼치기
- 같은 위치의 두 문자가 다른지 확인하면서 개수를 센다.
- 처음 다른 위치를 발견했을 때만 그 차례 번호를 저장한다.
관련 서재 장
알고리즘 분류
문자열구현풀이 작성
연습 채점은 공개 테스트로 실행합니다. 인증 제출은 코드를 봉인한 뒤 새 입력을 실행하고 서버에서 출력을 대조하며 코드와 판정을 저장합니다.
풀이를 제출하면 여기에서 결과를 확인할 수 있습니다.
연습 기록은 이 브라우저에 최근 50개를 저장합니다. 인증 기록은 내 제출에서 확인하세요.
이 브라우저의 연습 기록
언어별 제한
테스트 케이스마다 새 전역에서 실행하며 준비 시간은 제외합니다. 시간 초과된 출력은 검사하지 않습니다. 브라우저·기기 성능에 따라 실행 시간이 달라집니다.
| 언어 | 엔진(버전) | 시간 제한 | 메모리 |
|---|---|---|---|
| javascript | 사용자 브라우저 JavaScript 엔진 (버전은 브라우저에 따라 다름) | 1000ms / 테스트 | 측정하지 않음(브라우저 채점) |
| python | Pyodide 314.0.7 (CPython 3.14 WASM) | 5000ms / 테스트 | 측정하지 않음(브라우저 채점) |