2023.06.04 풀이
import sys
input=sys.stdin.readline
n=int(input())
cnt=0
for _ in range(n):
s=input().rstrip()
arr=[0]*26
for i in range(0, len(s)):
if arr[ord(s[i])-97]==0 or s[i]==s[i-1]:
arr[ord(s[i])-97]+=1
else:
cnt+=1
break
print(n-cnt)
- 그룹단어가 아닌 것을 카운트함
- rstrip() 유의하기
- s[i]==s[i-1]에서 i가 0인 경우에 s[i-1]은 배열 밖의 범위이므로 맞는 풀이인지 헷갈렸는데,
i가 0인 경우에는 이 arr[ord(s[i])]==0 의 조건을 만족하게 됨.
2024.08.23 풀이
import sys
input=sys.stdin.readline
def check(s):
for i in range(0, len(s)-1):
k=s[i]
t=1
for j in range(i+1, len(s)):
if k!=s[j]:
t=0
elif k==s[j] and t==0:
return False
return True
n=int(input())
cnt=0
for _ in range(n):
s=input().rstrip()
if check(s)==True:
cnt+=1
print(cnt)
2024.10.11 풀이
import sys
input=sys.stdin.readline
n=int(input())
cnt=0
for _ in range(n):
s=input().rstrip()
arr=[s[0]]
for i in range(1, len(s)):
if s[i]!=s[i-1]:
if s[i] not in arr:
arr.append(s[i])
else:
cnt+=1
break
print(n-cnt)
다른 풀이
import sys
input = sys.stdin.readline
n = int(input())
cnt = n
for _ in range(n) :
word = input()
for i in range(len(word)-1) :
if word[i] == word[i+1] :
pass
elif word[i] in word[i+1:] :
cnt -= 1
break
print(cnt)
n = int(input())
res = 0
j = 0
for _ in range(n):
word = input()
for i in range(len(word) - 1):
if word[i] == word[i + 1]:
pass
else:
if word.find(word[i],i+1) != -1:
res += 1
break
print(n - res)
n=int(input())
k=n
for _ in range(n):
a=set()
s=input()
a.add(s[0])
for i in range(len(s)-1):
if s[i]!=s[i+1]:
if(s[i+1] in a):
k-=1
break
else:
a.add(s[i+1])
print(k)
- set에 넣고, 앞 뒤가 다른 경우에 set에도 없으면.