BOJ 1316 그룹 단어 체커

LONGNEW·2021년 6월 20일
0

BOJ

목록 보기
242/333

https://www.acmicpc.net/problem/1316
시간 2초, 메모리 128MB
input :

  • N (1 <= N <= 100)
  • 단어 (1 <= 단어의 길이 <= 100)

output :

  • 그룹 단어의 개수를 출력.

조건 :

  • kin도 k, i, n이 연속해서 나타나기 때문에 그룹 단어
  • aabbbccb는 b가 떨어져서 나타나기 때문에 그룹 단어가 아니다.

단어가 연속적으로 나오는지를 판단하면 된다.
now 라는 변수에 현재까지 나오던 알파벳을 저장하도록 하고. data 배열에는 이 알파벳이 이미 나온적이 있는지를 기록하도록 한다.

그렇게 알파벳에 변경이 있을 때 이 알파벳이 이미 나온적이 있다면 이 단어는 그룹 단어가 아니기 때문에 기록을 하지 않게 한다.

import sys

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

for i in range(n):
    idx = [0] * 26
    data = sys.stdin.readline().strip()
    now = data[0]
    flag = 0

    for item in data:
        if now != item and idx[ord(item) - ord('a')] > 0:
            flag = 1
            break

        if now != item:
            now = item

        idx[ord(item) - ord('a')] += 1

    if flag == 0:
        ans += 1
print(ans)

0개의 댓글