BOJ実施:グループ単語checker(1316)
問題の定義
コンビネーションワードとは、単語に存在するすべての文字に対して、各文字が連続して現れる場合にのみ使用されます.例えば、ccazzzbbは、c、a、z、bが連続して現れるため、kinもk、i、nが連続して現れるが、aabbbbcbはbが落ちたため、組合せ語ではない.
プログラムを作成し、N個の単語を入力し、グループ内の単語数を出力してください.
入力条件
1行目の単語の個数はNです.Nは100以下の自然数である.2行目から、単語はN行に入ります.単語はアルファベット小文字だけで、繰り返しず、最長100です.
しゅつりょくじょうけん
最初の行はグループ語の個数を出力します.
I/O例
コンビネーションワードとは、単語に存在するすべての文字に対して、各文字が連続して現れる場合にのみ使用されます.例えば、ccazzzbbは、c、a、z、bが連続して現れるため、kinもk、i、nが連続して現れるが、aabbbbcbはbが落ちたため、組合せ語ではない.
プログラムを作成し、N個の単語を入力し、グループ内の単語数を出力してください.
入力条件
1行目の単語の個数はNです.Nは100以下の自然数である.2行目から、単語はN行に入ります.単語はアルファベット小文字だけで、繰り返しず、最長100です.
しゅつりょくじょうけん
最初の行はグループ語の個数を出力します.
I/O例
# 입력
3
happy
new
year
# 출력
3
# 입력
5
ab
aa
aca
ba
bb
# 출력
4
私が作ったコード1n = int(input())
words = []
for i in range(n):
words.append(str(input()))
cnt = 0
for string in words:
lst = []
remove = []
for char in string:
if char not in lst:
lst.append(char)
elif char in lst and char != lst[-1]:
remove.append(char)
else:
continue
if len(set(remove)) == 0:
cnt += 1
print(cnt)
私が作ったコード2def check_group(word):
last = ''
charset = []
for char in word:
if char not in charset:
charset.append(char)
else:
if char != last:
return 0
last = char
return 1
n= int(input())
cnt = 0
for i in range(n):
word = input()
cnt += check_group(word)
print(cnt)
Reference
この問題について(BOJ実施:グループ単語checker(1316)), 我々は、より多くの情報をここで見つけました https://velog.io/@yozzum/BOJ-구현-그룹단어체커テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol