def BOJ1316() :
n = int(input())
count = 0
for _ in range(n) :
pointer = ''
dict = {}
flag = True
for k in list(input()) :
if pointer != k and k not in dict :
pointer = k
dict[k] = 1
elif pointer == k and k in dict :
continue
elif pointer != k and k in dict :
flag = False
break
if flag :
count += 1
print(count)
BOJ1316()
접근 방법 :
1. 포인터를 하나 추가 하였다. 이 포인터는 이전에 추가되고 있던 문자열 이거나 현재와는 다른 문자열 일수 있다.
2. 자료구조는 dict를 사용하였다. 문자열을 키값으로 하여 바로 접근하기 위해서다.
3. 포인터와 현재 문자열을 계속 비교해가면서 카운팅을 하면 답에 접근할 수 있다.
https://www.acmicpc.net/problem/1316
1316번: 그룹 단어 체커
그룹 단어란 단어에 존재하는 모든 문자에 대해서, 각 문자가 연속해서 나타나는 경우만을 말한다. 예를 들면, ccazzzzbb는 c, a, z, b가 모두 연속해서 나타나고, kin도 k, i, n이 연속해서 나타나기 때
www.acmicpc.net
'알고리즘' 카테고리의 다른 글
패션왕 신해빈 (0) | 2022.01.13 |
---|---|
과제 [백준 - 13904] - python (0) | 2022.01.11 |
색종이 만들기[백준 2630] - python (0) | 2022.01.08 |
최소 힙[백준 - 1927] - python (0) | 2022.01.07 |
숨바꼭질 4 (0) | 2022.01.06 |