[백준] 1316번 : 그룹 단어 체커 (파이썬)

뚝딱이 공학도·2022년 1월 26일
0

문제풀이_백준

목록 보기
35/159




문제





나의 답안

n=int(input())
li=[input() for i in range(n)]
c=n
for w in li: #입력받은 각 문자열을 분리
    for j in range(len(w)-1):
        if w[j]!=w[j+1]: #앞 뒤 알파벳이 다르면
            if w[j] in w[j+1:]: #앞의 알파벳이 그 다음에 존재하는지(문자열 끝까지)
                c-=1#있다면 연속되게 나온것이 아니므로, 즉 그룹 단어가 아니므로 제외
                break #해당 단어에 대해 검사 종료
print(c)
  1. 단어의 개수를 입력해주고, 그 수만큼 문자열을 입력받아준다(li)
  2. 그룹 단어의 개수를 세는 변수 c는 단어 수만큼 초기화해준다. 모든 단어가 그룹단어라고 가정한 후 아닌 단어를 제외해줄 것이므로, 0이 아닌 단어 수로 초기화해준다.
  3. 1번에서 입력받은 여러 문자열을 분리해준다.
  4. 해당 문자의 길이만큼 반복문을 수행하는데, 배열의 인덱스를 사용해줄 것이므로 길이에서 -1을 빼준다.
  5. 만약 앞 알파벳과 뒷 알파벳이 다르면(if w[j]!=w[j+1]:), 앞 알파벳이 이후에 존재하는지 조건문을 통해 검사한다.(if w[j] in w[j+1:]:)
  6. 만약 존재한다면, 연속된 것이 아니므로 그룹단어가 아니다. 따라서 -1을 빼주고, 해당단어에 대해 더이상 검사할 필요가 없으므로 break로 종료해준다.
  7. 모든 단어에 대해 검사를 진행하고, 개수를 출력한다.

0개의 댓글