728x90
반응형

 

 

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

 

728x90
반응형

'알고리즘' 카테고리의 다른 글

패션왕 신해빈  (0) 2022.01.13
과제 [백준 - 13904] - python  (0) 2022.01.11
색종이 만들기[백준 2630] - python  (0) 2022.01.08
최소 힙[백준 - 1927] - python  (0) 2022.01.07
숨바꼭질 4  (1) 2022.01.06

+ Recent posts