
[풀이]
def group_check(word):
check = []
group = 0
point = ''
for i in word:
if i not in check or i == point:
check.append(i)
point = i
else:
return 0
return 1
n = int(input())
result = 0
for tc in range(n):
word = input()
result += group_check(word)
print(result)

최적화하자 긁쩍...
1. set으로 in의 연산속도를 개선, O(N) => O(1)
2. else없애고 return으로 흐름 단순 구성
3. 루프인덱스 _처리, 변수 사용하지 않으니까 굳이?
def group_check(word):
seen = set()
prev = ''
for ch in word:
if ch != prev:
if ch in seen:
return 0
seen.add(ch)
prev = ch
return 1
n = int(input())
result = 0
for _ in range(n):
word = input()
result += group_check(word)
print(result)
[링크]
https://www.acmicpc.net/problem/1316
'CodingTest > Baekjoon' 카테고리의 다른 글
| [백준] 2018 수들의 합(python, 투포인터) (1) | 2025.08.10 |
|---|---|
| [백준] 10825 국영수(python, 정렬) (0) | 2025.08.08 |
| [백준] 10814 나이순 정렬(python, 정렬) (0) | 2025.08.08 |
| [백준] 11651 좌표 정렬하기2(python, 정렬) (0) | 2025.08.08 |
| [백준] 2941 크로아티아 알파벳(python, 구현) (0) | 2025.08.08 |
