본문 바로가기
알고리즘/python

1316번 그룹 단어 체커(python3)

by 펀구구 2022. 1. 25.

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

 

1316번: 그룹 단어 체커

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

www.acmicpc.net

N = int(input())
data = []
for i in range(N):
    data.append(list(input()))

count = 0
for i in data:
    flag = False
    check = [
        ['a', 0],
        ['b', 0],
        ['c', 0],
        ['d', 0],
        ['e', 0],
        ['f', 0],
        ['g', 0],
        ['h', 0],
        ['i', 0],
        ['j', 0],
        ['k', 0],
        ['l', 0],
        ['m', 0],
        ['n', 0],
        ['o', 0],
        ['p', 0],
        ['q', 0],
        ['r', 0],
        ['s', 0],
        ['t', 0],
        ['u', 0],
        ['v', 0],
        ['w', 0],
        ['x', 0],
        ['y', 0],
        ['z', 0],
    ]
    for n in check:
        if i[0] == n[0]:
            n[1] += 1
    for j in range(1, len(i)):
        if i[j] == i[j-1]:
            continue
        else:
            for k in check:
                if i[j] == k[0]:
                    k[1] += 1
    for j in check:
        if j[1] > 1:
            flag = True
            break
    #print(check)
    if not flag:
        count += 1
print(count)

조금 노가다식으로 풀었다. 지금 알파벳과 전 알파벳이 다르다면 check 배열에서 1씩 늘려주는 방식으로 진행했다. check배열에서 2이상인 알파벳이 있다면 그룹단어가 아닌것이다.