본문 바로가기

알고리즘/백준알고리즘

[백준 알고리즘/Python3] 1316 그룹 단어 체커

문제 접근 

for문으로 문자열을 하나씩 확인하면서 연속된 문자열이 아니라면 바로 오른쪽의 문자열을 잘라서 새로운 문자열을 만듭니다.

 

그 때 확인한 문자와 새로운 문자열을 비교해봅니다..

ex) aabbbzzb 가 있다고 해봅시다.

 

for문으로 index가 1번인 a를 지정한다고 생각하면

a다음은 b이니 오른쪽 으로 쭉 문자열을 자른 bbbzzb가 있을 것입니다.. 

 

그럼 a와 bbbzzb를 비교하는 것이다.

비교할 것이 없으니 a는 더이상 그룹이 없습니다.

 

index가 4인 b를 보면 오른쪽과 다른 문자가 나왔으니 zzb인 문자열이 나올 것입니다.

b와 zzb를 비교해보니 b가 또 있습니다.

 

그러면 이 문자열은 그룹문자가 아니게 됩니다.

 

코드

count = int(input())
new_word = ""
result = 0

for _ in range(count):
    #매 상황마다 그룹인지 아닌지 모르니 매번 갱신합니다.
    not_group = 0

    word = input()
    for i in range(len(word)-1):
        if(word[i] != word[i+1]):#서로 다른 문자가 오면
            new_word = word[i+1:] # 새로운 문자열을 만든다.
            #남은 글자중에 현재 글자가 있다면
            #그룹 단어가 아니다
            if(new_word.count(word[i]) > 0):
                not_group = 1
    #그룹이라면 result 에 1을 추가합니다.
    if(not not_group):
        result +=1

print(result)
728x90