아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

망가진 키보드

면접 대비

시간 제한1초메모리 제한128 MB

요약
각 테스트케이스에서 문장의 부분 문자열 중 서로 다른 문자가 m개 이하인 가장 긴 것의 길이를 구한다.
난이도

보통10점 중 5점

유형
슬라이딩 윈도우, 문자열, 해시맵, 투 포인터
정답자
아직 제출이 없습니다

문제

키보드가 망가져서 일부 키만 작동한다. 지금 작동하는 키는 모두 mm개이며, 키보드의 레이아웃(키와 문자의 대응)은 바꿀 수 없다. 키 하나는 문자 하나에만 대응하고, 여러 키를 조합해 문자를 입력할 수는 없다.

입력하려는 문장이 주어졌을 때, 레이아웃을 바꾸지 않고 연속으로 입력할 수 있는 가장 긴 부분 문자열의 길이를 구하여라. 작동하는 키가 mm개이므로, 이는 서로 다른 문자가 최대 mm종류만 나타나는 가장 긴 연속 부분 문자열(substring)의 길이를 찾는 것과 같다.

입력

입력은 여러 개의 테스트 케이스로 이루어진다. 각 테스트 케이스는 두 줄이다.

  • 첫째 줄: 작동하는 키의 개수 mm (1≤m≤1281 \le m \le 128)
  • 둘째 줄: 입력하려는 문장. 길이는 1,000,000자를 넘지 않으며, 공백을 포함할 수 있다. 공백도 하나의 문자로 취급한다.

입력의 마지막 줄에는 00이 하나 주어지며, 이는 입력의 끝을 뜻한다.

출력

각 테스트 케이스마다, 서로 다른 문자가 최대 mm종류로 이루어진 가장 긴 연속 부분 문자열의 길이를 한 줄에 하나씩 출력한다.

예제3

  1. 예제 1

    입력
    5
    This can't be solved by brute force.
    1
    Mississippi
    0
    
    예상 출력
    7
    2
    
  2. 예제 2

    입력
    1
    aaaa
    0
    
    예상 출력
    4
    
  3. 예제 3

    입력
    1
    abcdef
    0
    
    예상 출력
    1