알고리즘

[백준 1316] 그룹 단어 체커 - 파이썬

Codult 2024. 1. 20. 11:58
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