백준-1316 그룹 단어 체크

Yeom Jae Seon·2021년 2월 8일
0

알고리즘

목록 보기
10/19
post-thumbnail

문제

주어진 문자열이 연속된 문자로 이루어진 그룹단어인지 체크하는문제이다.
문제는 이해하기 쉽다.

word in arr문법을 통해서 풀었다.

코드 😀

import sys

N = int(sys.stdin.readline().rstrip())

def groud(word):
  arr = []
  flag = True
  for i in range(len(word)):
    if len(arr) == 0:
      arr.append(word[i])
    else:
      if word[i] in arr:
        if arr[i - 1] != word[i]:
          #그룹단어 확실히 아님
          return False
        else:
          arr.append(word[i])
      else:
        arr.append(word[i])

  return flag

count = 0
for i in range(N):
  word = sys.stdin.readline().rstrip()
  if groud(word) == True:
    count += 1

print(count)

arr에 빈배열을하나만들어놔서 문자열의 첫번째 문자부터 하나씩 넣어가며 비교했다.

확실히 그룹단어가 아닐 경우는 arr안에 해당 문자가 존재하지만 바로 이전의 문자가 아닌경우이므로 저땐 False를 리턴했다.

헤맸던 부분 🤣

  • indexError때문에 골치아팠다. 이유는 word[i] in arr은 true 지만 arr[i - 1] == word[i]일 경우 arr의 배열에 추가해주지 않아서(처리해주지 않아서) 자꾸 존재 존재하지 않는 arr[i - 1]을 가르키니 indexError가 떠서 헤맸다.

이로써 문자열까지 알고리즘 끝!

0개의 댓글