[백준/Python] 1316번 - 그룹 단어 체커

Sujin Lee·2022년 6월 8일
0

코딩테스트

목록 보기
63/172
post-thumbnail

문제

1316번 - 그룹단어

해결 과정

  • 중복일 경우와 중복이 아닐 경우로 나누어서 생각
  • 또 중복일 경우에도 가능한 경우와 불가능한 경우로 나누어서 생각
    • 가능한 경우: 같은 숫자가 연속적으로 들어온 경우
    • 불가능한 경우: 같은 숫자가 연속적으로 나오지 않은 경우 (띄엄띄엄)

시행 착오

  • 문제 이해를 못하겠.. 그룹 단어가 뭐지..?
    • 알파벳 1개 가능
    • 알파벳 1개 이상 중복일 경우는 연속으로만 가능
  • 중복이 아닐 경우 경우는 set함수 사용
  • 중복일 경우는 빈 리스트를 선언하여 알파벳 하나씩 넣어가는데,
    • 리스트에 중복된 게 없을 경우 삽입
    • 리스트에 중복된 게 있을 경우 리스트의 마지막 값과 삽입할 값이 같다면 삽입 (같은 숫자는 연속적으로만 가능하니까)

풀이

import sys

n = int(sys.stdin.readline())
cnt = 0

for _ in range(n):
  word = list(sys.stdin.readline().strip())
  tmp = []
  for i in range(len(word)):
    # 중복이 없을 경우
    if len(word) == len(set(word)):
      cnt += 1
      break
      
    # 중복이 있을 경우
    elif word[i] not in tmp or tmp[-1] == word[i]:
        tmp.append(word[i])
        
    # 규칙대로 문자열이 들어갔다면 길이는 같을 것
    if len(word) == len(tmp):
      cnt += 1
      
print(cnt)
profile
공부한 내용을 기록하는 공간입니다. 📝

0개의 댓글