본문 바로가기

코딩 테스트/백준 파이썬 문제 풀이

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

https://www.acmicpc.net/problem/1316

 

이번 문제는 쉽게 표현해서

입력받은 개수만큼의 문자열 중에서

반복되는 문자가 없거나, 혹은 있지만 떨어져 있지 않고 붙어 있는 문자열일 경우에만 '그룹 단어'라고 부르는데

이 그룹 단어의 개수를 출력하면 되는 것이다

 

num = int(input())
count = 0
for _ in range(num):
    word = input()
    error = 0
    for i in range(len(word)-1):
        if word[i] != word[i+1]:
            new_word = word[i+1:]
            if new_word.count(word[i]) > 0:
                error += 1
    if error == 0:
        count += 1
print(count)

 

정답 코드가 조금 복잡해 보이지만

word에 i 번째 문자와 i+1 번째 문자를 비교해서

만약 두 문자가 다르다면 i 번째 문자 이후의 문자열을([i+1:]) 새롭게 저장한 뒤

i 번째 문자에 해당하는 알파벳이 새롭게 저장한 문자열 속에 있는지 확인한다

만약 존재한다면 if 문 안에 있는 count 함수의 반환값이 1 이상이 될 테고,

그렇게 되면 error 값을 올려서 count 수가 올라가지 않도록 코딩한 것이다