백준 - 1316 (Python) - 그룹 단어 체커

박준영·2021년 6월 15일
0
post-thumbnail

백준 1316

그룹 단어 체커

n = int(input())

group_word = 0
for _ in range(n):
    word = input()
    error = 0
    for index in range(len(word)-1):  # 인덱스 범위 생성 : 0부터 단어개수 -1까지 
        if word[index] != word[index+1]:  # 연달은 두 문자가 다른 때,
            new_word = word[index+1:]  # 현재글자 이후 문자열을 새로운 단어로 생성
            if new_word.count(word[index]) > 0:  # 남은 문자열에서 현재글자가 있있다면
                error += 1  # error에 1씩 증가.
    if error == 0:  
        group_word += 1  # error가 0이면 그룹단어
print(group_word)

검색해보니 이것보다 짧은 코드들이 많았는데, 내 기준에서 이해하기 가장 무난한 코드를 가져와봤다.
n에는 맨 처음 인풋을 받는 단어들의 개수를(첫 for문을 n번만큼 실행) , word에는 인풋된 단어를 넣는다.

  • 0부터 (단어 개수 - 1) 의 인덱스 범위가 생성이 된다.
  • 연속된 두 문자가 다르다면 new_word에 현재 문자 이후의 문자들로 구성된 새로운 단어를 넣는다.

  • count함수를 사용하여, 만약 new_word에 현재 문자가 존재하는 것이 확인된다면 error값을 하나 올려주고 이때 error가 발생했다는 것은 떨어져 있는 문자가 있으므로 그룹단어가 아닌것이다.

  • error가 발생하지 않았다면 그룹단어이므로 group_word의 수를 출력하면 정답이 나온다.

0개의 댓글