[6/21] 1316 (그룹 단어 체커)

이경준·2021년 6월 21일
0

코테

목록 보기
38/140
post-custom-banner

문제

내 코드

n = int(input())
num = 0

for i in range(n):
    word = str(input())
    arr = [word[0]]
    
    for i in range(1, len(word)):
        if word[i] != arr[-1]:
            arr.append(word[i])
    arr = "".join(arr)
#######################################
    check = []
    for j in arr:
        if j in check:
            break
        check.append(j)
    else:
        num += 1
    
print(num)

로직

  1. 연속되는 문자를 하나로 합쳐준다. (ex. aabbcc --> abc)
  2. 한 번 나온 문자가 또 나오면 그룹 단어가 아니다.

효율적인 코드

n = int(input())
num = 0

for i in range(n):
    word = str(input())
    arr = []
    
    for i in range(len(word)-1):
        if word.find(word[i]) > word.find(word[i+1]):
            break
    else:
        num += 1
    
print(num)

피드백

find 함수를 써서, 중복되는 문자를 합쳐주는 과정을 생략하고 넘어간다.

배운 것

변수명.find(문자) : 해당 문자의 인덱스를 반환한다.

profile
The Show Must Go On
post-custom-banner

0개의 댓글