728x90
백준 1316

풀이과정
1) 입력받은 문자열을 쪼개어 리스트(word)로 저장한다.
2) for문을 활용하여 인덱스 j를 돌면서, word[0, j] 내에 word[j]가 있는지 확인한다.
* word[0, j] 내에 word[j] 가 있다는 것은 자신과 동일한 문자가 다른 인덱스에도 있다는 것을 의미
3) 동일한 문자 간의 인덱스 차이가 1을 초과한다면, 그룹단어가 아니다.
* 동일한 문자가 있는데, word[j]와 word[j-1]이 다른 문자라는 것과 같은 의미
N = int(input())
for i in range(N):
word = list(input()) #문자를 쪼개서 word 리스트에 저장
is_group = True #문자를 탐색할 때마다 그룹단어 여부는 초기화
for j in range(1, len(word)):
if word[j] in word[0:j] and word[j] != word[j-1]:
#word[0:j]에서 word[j] 동일문자가 있되, 붙어 있지 않다면 그룹단어가 아님
is_group = False
#그룹단어가 아니므로, N -= 1
if not is_group: N -= 1
print(N)728x90
'알고리즘' 카테고리의 다른 글
| [백준 11726] 2xn 타일링 - 파이썬 (1) | 2024.01.21 |
|---|---|
| [백준 11047] 동전 0 - 파이썬 (0) | 2024.01.20 |
| 그리디 알고리즘 (0) | 2024.01.19 |
| 탐색(2): 이진 탐색 (0) | 2024.01.19 |
| 탐색(1): 깊이 우선 탐색/너비 우선 탐색 (0) | 2024.01.19 |