본문 바로가기
카테고리 없음

[백준/파이썬(Python)] 고냥이 12865 Gold 4

by Rudy 2023. 2. 22.

💌문제


 

https://www.acmicpc.net/problem/16472

 

16472번: 고냥이

고양이는 너무 귀엽다. 사람들은 고양이를 너무 귀여워했고, 결국 고양이와 더욱 가까워지고 싶어 고양이와의 소통을 위한 고양이 말 번역기를 발명하기로 했다. 이 번역기는 사람의 언어를 고

www.acmicpc.net

 

💌풀이


투포인터를 사용해서 start, end를 1씩 늘려줘가며 조건을 확인한다.

조건은 현재 check 하는 set 자료형에 있는 알파벳 숫자가 n을 넘어갈 때로 설정했다.

그리고 while문을 빠져나온 뒤에도 만약에 n이 알파벳 숫자 갯수보다 크면 조정해주고, 크지 않으면 현재 설정된 lenS 문자열의 길이를 answer에 설정해서 출력한다.

 

💌파이썬 코드


n=int(input())
s=str(input())
s=list(s)

start=0
end=0
check=set(s[0])
answer=0
lenS=1

while start<len(s)-1 and end<len(s)-1:
    if len(check)>n:
        start+=1
        lenS-=1
        answer=max(answer,lenS)
        check=set(s[start:end+1])
    else:
        end+=1
        lenS+=1
        check.add(s[end])

if len(check)>n:
    answer=max(answer,lenS-1)
else:
    answer=max(answer,lenS)
print(answer)
 

댓글