728x90
반응형

Python 문제풀이

n = int(input())
alpa =[]
result =0
now = ''
state = 0 #상태가 -1이라면 그룹단어가 아니고 0이면 그룹단어이다
for i in range(n):
    text= input()

    now = text[0] #현재 이어지고 있는 문자를 뜻하는 변수에 첫 문자를 넣기
    alpa.append(text[0]) #나왔던 문자를 저장하는 리스트에 첫 문자를 넣기

    for j in range(len(text)):
        if(now != text[j]): # 이어지다가 다른 글자가 나왔다면
            for k in range(len(alpa)): # 이미 나왔던건지 검사하고
                if alpa[k]==text[j]: #이미 나왔던거라면
                    state = -1 #이거는 횟수로 칭할 수 없다
                    break
        else: #이어지는 글자라면 계속가자
            continue

        if state == -1:
            break
        else: #나는 문제없는 새로운 문자다
            now = text[j] #현재 이어지는 문자를 새로운 문자로 변경
            alpa.append(text[j]) #새로운 문자를 리스트에 추가

    alpa = [] #나왔던 문자를 저장하는 리스트 초기화

    if state == 0:
        result +=1
    else:
        state =0


print(result)

저도 문제를 풀면서 헷갈려서 주석을 달면서 풀었습니다. 원래 주석은 달아야하는게 맞습니다만..ㅎ

 

간단하게 설명하면 나왔던 문자는 이어짐이 끊긴 상태에서 또 나오면 안됩니다.

그러니 문자의 이어짐을 확인하고 새로운 문자가 나왔다면 그 문자가 이전에 나왔던 문자인지 확인하면 됩니다.

 

alpa는 나왔던 문자를 저장하는 리스트입니다. 새로운 문자가 나왔다면 alpa 안에 그 문자가 있는지 확인합니다.

정말 새로운 문자라면 현재 이어지는 알파벳을 저장하고있는 now 변수에 해당 알파벳을 넣고 새로운 문자이니 alpa리스트에 이 문자를 추가해줍니다.

728x90
반응형

+ Recent posts