개발 연습장/백준 문제풀이

[파이썬, Python] 백준 1316: 그룹 단어 체커

LooanCheong 2022. 12. 8. 19:23
반응형

문제

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

 

1316번: 그룹 단어 체커

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

www.acmicpc.net

코드

n = int(input())
cnt = n
for _ in range(n):
    text = input()
    for i in range(0, len(text)-1):
        if text[i] == text[i+1]:
            pass
        elif text[i] in text[i+1:]:
            cnt -= 1
            break
print(cnt)

설명

우선 단어의 개수를 입력 받아준다.
그리고 그룹 단어가 아닌 수를 빼주기 위해서 cnt는 n으로 설정해준다.

이후 n의 개수만큼 단어를 입력받아서 그룹 단어를 체크해 줄 것인데,
우선 단어의 수 - 1만큼 반복해준다.(마지막 단어는 체크할 필요가 없으므로)

이후 조건에 따라 체크를 해 줄 것인데,
우선 중복해서 나오는 텍스트 중 가장 마지막 텍스트로 이동하기 위해
text[i] 와 text[i+1] 이 같다면 pass 해준다. (cccacc의 순이라면 3번째 c까지 이동한다는 의미이다.)

그 다음 만약 그 문자가 다음에도 또 나오게 된다면 그룹 단어가 아니므로(cccacc의 경우 3번째 c 뒤에 또 c가 나오므로)
cnt에서 1을 빼주고 더 진행할 필요가 없으므로 break 해준다.

최종적으로 cnt를 출력해준다.

반응형