본문 바로가기

코딩테스트/BOJ

[백준/파이썬] 1316번: 그룹 단어 체커 (Python)

문제

www.acmicpc.net/problem/1316

 

1316번: 그룹 단어 체커

그룹 단어란 단어에 존재하는 모든 문자에 대해서, 각 문자가 연속해서 나타나는 경우만을 말한다. 예를 들면, ccazzzzbb는 c, a, z, b가 모두 연속해서 나타나고, kin도 k, i, n이 연속해서 나타나기 때

www.acmicpc.net

풀이

 - 구현 알고리즘

 

 - 문자열의 각 문자를 새로운 리스트에 존재하지 않는 경우 리스트에 담는다.

 

 - 새로운 리스트에 단어가 존재하고 해당 단어가 연속하지 않은 경우는 그룹단어가 아니다.

 

예를들어, happy는 ['h', 'a', 'p', 'y']가 새로운 리스트에 담긴다. 단 'p'는 연속되어있기 때문에 그룹단어이다

코드

n = int(input())

a = []
cnt = 0
for i in range(n):
    s = list(map(str, input()))
    flag = False
    a = []
    for j in range(len(s)):
        if s[j] not in a :
            a.append(s[j])
        else :
            if s[j-1] != s[j]:
                flag = True
    if flag == False:
        cnt += 1
                
print(cnt)