Coding - Algo/python
[백준] 1316번:그룹 단어 체커 (python 파이썬)
jainn
2021. 3. 26. 00:03
728x90
문제
1316번: 그룹 단어 체커
그룹 단어란 단어에 존재하는 모든 문자에 대해서, 각 문자가 연속해서 나타나는 경우만을 말한다. 예를 들면, ccazzzzbb는 c, a, z, b가 모두 연속해서 나타나고, kin도 k, i, n이 연속해서 나타나기 때
www.acmicpc.net
풀이 및 소스코드
gword 라는 그룹단어의 알파벳이 들어가는 리스트를 하나 만들어주었다.
이전에 나왔던 알파벳들을 기억해두려고 만들었다.
먼저, for 문으로 입력받은 단어의 맨 처음 알파벳부터 보면서 gword 에 담겨있는지 본다.
없으면 추가하고 카운트를 +1 해준다.
카운트는 전에 나왔던 알파벳이 연속된건지, 아니면 떨어져있던건지 보기위함이다 !
만약, 담겨있다면 먼저 cnt를 본다.
cnt 가 0이라면, 전에 나온 알파벳이지만 연속되어있지 않다는 뜻이므로 flg -1 처리 해주고 break 해준다.
cnt 가 0이 아니라면, 현재 위치의 전과 비교하여 같은지 보고 다르다면 flg -1처리 해주고 break 해준다.
import sys
input = sys.stdin.readline
n = int(input())
res = 0
for i in range(n):
word = list(input().rstrip())
gword = []
cnt = 0
flg = 1
for j in range(len(word)):
if word[j] not in gword:
gword.append(word[j])
cnt = 1
continue
if cnt == 0:
flg = -1
break
if word[j-1]!=word[j]:
flg = -1
break
cnt += 1
if j == len(word)-1 and flg == 1:
res+=1
print(res)
반응형