Baekjun-組合せ語Checker(1316)
String
質問する
コンビネーションワードとは、単語に存在するすべての文字に対して、各文字が連続して現れる場合にのみ使用されます.例えば、ccazzzbbは、c、a、z、bが連続して現れるため、kinもk、i、nが連続して現れるが、aabbbbcbはbが落ちたため、組合せ語ではない.
プログラムを作成し、N個の単語を入力し、グループ内の単語数を出力してください.
入力
1行目の単語の個数はNです.Nは100以下の自然数である.2行目から、単語はN行に入ります.単語はアルファベット小文字だけで、繰り返しず、最長100です.
しゅつりょく
最初の行はグループ語の個数を出力します.
import sys
N = int(sys.stdin.readline())
answer = []
for i in range(N):
word = input()
check = []
check.append(word[0]) # 디폴트로 첫 글자 넣고 시작
for j in range(1, len(word)):
# 처음 출현했거나 두 번 이상 출현했는데 전 글자와 연속일 경우 문제의 조건 만족
if check.count(word[j]) == 0 or (check.count(word[j]) >= 1 and check[-1] == word[j]):
check.append(word[j])
else:
break # 조건에 어긋나면 더 진행하지 않고 바로 반복문 탈출
if len(check) == len(word): #위 조건문을 빠져나온 글자수가 원래 글자수랑 같으면 해당 단어 정답배열로 옮긴다.
answer.append(word)
# 물론 answer을 숫자형으로 해서 answer += 1로 가능.
print(len(answer))
# set으로 풀려다 이 문제는 배열이 적합해서 방향 전환
参照)ソートの解:https://leedakyeong.tistory.com/entry/白駿-1316-グループ-単語-チック-in-python
Reference
この問題について(Baekjun-組合せ語Checker(1316)), 我々は、より多くの情報をここで見つけました https://velog.io/@skkfea07/백준-그룹-단어-체커1316テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol