알고리즘/백준 문제풀이

[백준] 1316 그룹 단어 체커 파이썬 풀이 (문자열)

자바칩 프라푸치노 2021. 6. 19. 14:18

코드

 

1
2
3
4
5
6
7
8
9
10
11
12
13
num = int(input())
count = 0
for i in range(num):
    word = input()
    for index in range(len(word)): #index로 접근
        if index != len(word)-1:
            if word[index] == word[index+1]:
                continue
            elif word[index] in word[index+1:]:
                break
        else:
            count+=1
print(count)
cs

 

 

문제풀이

예를 들어 aabbccb를 보면

b가 앞에 있었는데 띄워져서 또 나왔으니까 그룹 단어가 아니라는 것이다.

그러면 처음부터 보자면

맨 앞에 글자 (a)와 바로 뒤의 글자 (a)가 같으면 아무 문제 없다.

그리고 (a)와 그 다음 글자 (b)가 나오는데 그때!

앞글자랑 뒷글자가 달라지는 바로 그때!

뒷글자부터 맨 끝에 글자까지 중에서 앞글자가 나오면 그룹단어가 아니라는 것이다.

 

aabbccb로 보자면

b가 처음 나오는 그 순간!

앞의 a가 bbccb에 있으면 그룹 단어가 아니다.

그런데 없다.

그러면 b부터 다시 보는것이다

b뒤에 b가 나오니까 패스

다음b뒤에 c가 나오니까 그때!!!

ccb에서 b가 나오면 안된다는 것이다.

b가 나와버렸다.

그룹단어가 아니다.

728x90