문제 3568 · 비트 IV
포장 라벨의 첫 어긋남
| 시간 제한 | 메모리 제한 | 제출 | 정답 | 맞힌 사람 | 정답 비율 |
|---|---|---|---|---|---|
| 1000ms / 테스트 (언어별 보정은 아래 표) | 메모리: 측정하지 않음(브라우저 채점) | 0 | 0 | 0 | 0.00% |
문제
공장 생산 라인에서는 상자가 지나가는 순서에 맞추어 포장 라벨을 붙인다. 작업을 시작하기 전에 관리 장치는 이번 작업에서 붙여야 할 라벨의 종류를 문자열 A에 기록한다. 작업이 끝나면 검사 장치는 실제로 붙어 있는 라벨의 종류를 읽어 문자열 B를 만든다. 라벨 종류는 영문 대문자 한 글자로 나타내며, 두 문자열에서 같은 위치는 같은 상자를 뜻한다. 이번 작업에서는 상자 N개가 모두 정해진 순서로 통과했고, 상자가 중간에 빠지거나 새로 끼어드는 일은 없었다. 모든 상자에 라벨이 정확히 하나씩 붙어 있고, 검사 장치는 모든 라벨을 빠짐없이 읽었다. 따라서 두 문자열의 길이는 모두 N이며, 서로 다른 위치의 문자를 맞추기 위해 문자열을 이동하거나 문자를 삽입하고 삭제할 필요가 없다. 검사 결과는 위치별로 판단한다. 어떤 위치에서 A의 문자와 B의 문자가 같으면 해당 상자에는 계획한 종류의 라벨이 붙은 것이다. 두 문자가 다르면 해당 상자는 라벨이 어긋난 상자다. 다른 위치에 같은 종류의 라벨이 남아 있더라도 서로 바꾸거나 수량을 합쳐서 정상으로 처리하지 않는다. 오직 같은 위치의 두 문자만 비교한다. 담당자는 재검사를 시작할 지점을 정하기 위해 라벨이 어긋난 상자 중 가장 먼저 생산 라인을 통과한 상자의 번호를 알고 싶다. 상자의 번호는 문자열의 왼쪽부터 1, 2, 3과 같이 매기며 마지막 상자의 번호는 N이다. 어긋난 상자가 여러 개라면 번호가 가장 작은 상자 하나를 선택한다. 모든 상자의 라벨이 계획과 일치한다면 재검사가 필요 없다는 뜻으로 0을 사용한다. 계획 문자열 A와 실제 문자열 B가 주어진다. 라벨이 처음 어긋난 상자의 번호를 구하는 프로그램을 작성한다. 전체 오류 개수나 라벨의 종류는 출력하지 않고, 재검사를 시작할 번호 하나만 출력한다.
입력
첫째 줄에 상자의 개수인 정수 N이 주어진다. 1 ≤ N ≤ 1,000이다. 둘째 줄에 계획 문자열 A가 주어진다. 셋째 줄에 실제 문자열 B가 주어진다. A와 B의 길이는 각각 정확히 N이며, 모든 문자는 영문 대문자 A부터 Z까지 중 하나다. 문자열에 공백은 없다.
출력
A와 B의 문자가 처음으로 다른 위치의 상자 번호를 정수 하나로 출력한다. 번호는 1부터 시작하며, 다른 위치가 여러 개라면 가장 작은 번호를 출력한다. 두 문자열이 완전히 같다면 0을 출력한다.
예제 입력 1
6 ABCCDA ABCEDA
예제 출력 1
4
예제 입력 2
4 MMMM MMMM
예제 출력 2
0
예제 입력 3
5 KLMNO ALMNP
예제 출력 3
1
힌트 펼치기
- 왼쪽부터 같은 위치의 문자를 비교하고, 처음 다른 위치를 발견하면 탐색을 끝낸다.
관련 서재 장
알고리즘 분류
구현문자열풀이 작성
연습 채점은 공개 테스트로 실행합니다. 인증 제출은 코드를 봉인한 뒤 새 입력을 실행하고 서버에서 출력을 대조하며 코드와 판정을 저장합니다.
풀이를 제출하면 여기에서 결과를 확인할 수 있습니다.
연습 기록은 이 브라우저에 최근 50개를 저장합니다. 인증 기록은 내 제출에서 확인하세요.
이 브라우저의 연습 기록
언어별 제한
테스트 케이스마다 새 전역에서 실행하며 준비 시간은 제외합니다. 시간 초과된 출력은 검사하지 않습니다. 브라우저·기기 성능에 따라 실행 시간이 달라집니다.
| 언어 | 엔진(버전) | 시간 제한 | 메모리 |
|---|---|---|---|
| javascript | 사용자 브라우저 JavaScript 엔진 (버전은 브라우저에 따라 다름) | 1000ms / 테스트 | 측정하지 않음(브라우저 채점) |
| python | Pyodide 314.0.7 (CPython 3.14 WASM) | 5000ms / 테스트 | 측정하지 않음(브라우저 채점) |