알고리즘 공부

백준 1316번 (미해결)

transfer_kk 2022. 12. 8. 20:03

문제

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

 

1316번: 그룹 단어 체커

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

www.acmicpc.net

나의 풀이

count=0
for i in range(int(input())):
    alphabet=input()
    error=0
    for j in range(len(alphabet)-1):
        if alphabet[j]!=alphabet[j+1]:
            for k in range(1,len(alphabet)-j):
                if alphabet[j]==alphabet[j+k]:
                    error+=1
    if error==0:
        count+=1
print(count)

다른 사람의 풀이

def grouped(w):
    w = [w[i] for i in range(len(w)) if i==0 or w[i-1] != w[i]]
    return len(set(w)) == len(w)

print(sum(map(grouped, [input() for i in range(int(input()))])))

다른 사람의 풀이에서 grouped()함수가 잘 이해가 되지 않는다