[PYTHON] 1316 그룹단어 체커

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

     

    1316번: 그룹 단어 체커

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

    www.acmicpc.net

    solution

    import sys
    N = int(sys.stdin.readline().strip())
    
    # 그룹 단어이면 카운팅을 저장하는 변수 생성
    total = 0
    
    for _ in range(N):
      word = sys.stdin.readline().strip() # 'aaabbca'
      # 오른쪽 요소의 문자를 추가하기때문에 제일 왼쪽 요소인 첫 번째 요소를 미리 추가해놓는다.
      not_duplication = [word[0]] # ['a']
      for i in range(len(word) -1):
        # 만약 왼쪽 요소와 오른쪽 요소가 같지 않다면 => 연속된 문자가 아니라면
        if word[i] != word[i+1]:
          # 오른쪽 요소의 문자를 추가한다
          not_duplication.append(word[i+1])
    
      # 반복문이 끝난 후  not_duplication = ['a','b','c','a']
      # 중복을 제거한 리스트의 길이와 리스트의 길이가 같다면 그룹 단어이다. 
      if len(set(not_duplication)) == len(not_duplication) :
        total += 1
    print(total) 

    댓글