주어진 문자열이 연속된 문자로 이루어진 그룹단어인지 체크하는문제이다.
문제는 이해하기 쉽다.
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
가 떠서 헤맸다.이로써 문자열까지 알고리즘 끝!