728x90


풀이

직관적으로 막구현(?) 으로 풀었다.

 

n = int(input())
total_cnt = 0
for i in range(n):
    s = input()
    cnt = 0
    arr = [] #나왔던 글자를 저장하는 리스트
    for i in range(len(s)):
        if i == 0: #인덱스 에러를 방지하기 위한 처리
            arr.append(s[i])
            continue
        elif s[i] == s[i-1]: #연속으로 같은 글자가 나오는 경우 이미 앞에서 arr에 넣어줬으므로 continue
            continue
        elif s[i] not in arr: #만약 s[i]가 즉 처리하는 글자가 arr에 없다면 즉 한번도 안나왔다면 arr에 추가
            arr.append(s[i])
        elif s[i] in arr: #만약 s[i]가 즉 처리하는 글자가 arr에 있다면 cnt를 빼줌으로써 total_cnt에 변화가 없게 만든다
            cnt -= 1
            break
    cnt += 1 
    total_cnt += cnt
print(total_cnt)

 

우선 파이썬은 코드가 위에서부터 아래로 순차적으로 처리되므로 

첫줄에 index에러를 위한 예외처리를 해준다.

  1. 처음 나오는 글자는 당연히 arr 즉 나왔던 글자를 저장하는 리스트에 없을 것이므로 s[ i ]를 arr에 추가해준다.
  2. 그 다음에는 연속으로 같은 글자가 나오는 경우 이미 앞에서 arr에 넣어줬으므로 continue처리 해준다.
  3. 만약 s[ i ]가 즉 처리하는 글자가 arr에 없다면 즉 한번도 안나왔다면 arr에 추가해준다.
  4. 만약 s[i]가 즉 처리하는 글자가 arr에 있다면 cnt를 빼줌으로써 total_cnt에 변화가 없게 만든다.

마지막으로 전체 그룹단어를 체킹하는 total_cnt를 출력해주면 정답

 

 

 

 

 

 

 

복사했습니다!