풀이
- 처음엔 단순히 같은 값으로
- 예를 들어 'EE', 'WW'의 경우 카운팅을 해주는 형식으로 했지만 어림도 없었고
- 이후 'EW'의 경우 카운팅을 해주고자 하니
- 'WE'의 경우엔 서로 다른 방향으로 가니 컨트롤 하기가 어려워서 고민하다가
- 그냥 반복문을 돌리면서 visit로 방문 체크를 하며 확인해볼까 해서 풀어보니 해결!
import sys
from collections import deque
input = sys.stdin.readline
n = int(input())
li = list(input().rstrip('\n'))
visit = [0]*n
result = 0
for i in range(n):
if not visit[i]:
q = deque([i])
visit[i] = 1
while q:
s = q.popleft()
if li[s] == 'E' and not visit[s+1]:
visit[s+1] = 1
q.append(s+1)
elif li[s] == 'W' and not visit[s-1]:
visit[s-1] = 1
q.append(s-1)
if li[i] != li[i-1]: result += 1
print(result)
'알고리즘' 카테고리의 다른 글
[백준, 파이썬, 9342번] 염색체 (0) | 2023.09.15 |
---|---|
[백준, 파이썬, 1912번] 연속합 (0) | 2023.09.14 |
[백준, 파이썬, 15650번] N과 M (2) (0) | 2023.09.13 |
[백준, 파이썬, 5568번] 카드 놓기 (0) | 2023.09.13 |
[백준, 파이썬, 16174번] 점프왕 쩰리 (Large) (0) | 2023.09.12 |