[BOJ] 1316 그룹 단어 체커 (Python)

8692 단어 백준백준

내 코드

import sys
N=int(sys.stdin.readline())
cnt=0
for i in range(N):
    alli=list(map(str,sys.stdin.readline().strip()))
    j=0
    alzero=[0 for j in range(26)]
    while(j<len(alli)):
        alzero[ord(alli[j])-97]+=1
        if alzero[ord(alli[j])-97]>1:
            j=len(alli)
            cnt-=1
            break
        if j!=(len(alli)-1):
            if alli[j]==alli[j+1]:
                while alli[j]==alli[j+1]:
                    j+=1
                    if j>=len(alli)-2:
                        break
        j+=1
    cnt+=1
print(cnt)

참고해서 만든 코드

import sys
N=int(sys.stdin.readline())
cnt=N
for i in range(N):
    alli=list(map(str,sys.stdin.readline().strip()))
    for j in range(len(alli)-1):
        if alli[j]==alli[j+1]:
            pass
        elif alli[j] in alli[j+1:]:
            cnt-=1
            break
print(cnt)

문제를 풀고 든 생각

벨로그에 쓴 여러 글들과 달리 이번 문제는 맞춰서 쓰는 글이 아니다. 틀린점을 발견해내지 못해서 검색해서 해결해낸 문제이다. 검색 결과 내가 여러줄로 짠 코드를 x in y 문으로 만들 수 있다는 것을 알게 되었다.

얼마전 파이썬 공부를 하면서 해당 문법을 공부했었는데 막상 문제를 풀 때는 생각이 나지 않아 사용하지 못하고 파이써닉하지 않은 긴 코드를 짜버렸다. 아무리 좋은 도구를 가지고 있어도 제대로 써먹지 못한다면 아무 소용이 없다. 파이썬의 유용한 문법을 제대로 사용하기 위해 여러 문제를 풀면서 익숙해져야겠다.

좋은 웹페이지 즐겨찾기