문제 요약
문제 링크 : https://atcoder.jp/contests/abc394/tasks/abc394_c
주어지는 문자열에서 WA
부분 문자열을 AC
라는 문자열로 계속해서 대체했을 때, 최종적으로 나타나는 문자열을 구하는 문제입니다.
예를 들어, WWA 라는 문자열이 있으면 WWA
→ WA
C → ACC 로 변합니다.
문제 풀이
문자가 변하는 양상을 확인해보면, W*X개+A*1개
의 형태를 갖춰야만 바뀐다는 걸 WA가 AC로 계속 바뀌게 됨을 알 수 있습니다. W의 개수를 세다가 A 문자가 등장하면 대체하는 식으로 처리하면 됩니다.
코드
s = input()
stk = []
for i in s:
if len(stk) == 0 or i != 'A'
stk.append(i)
continue
idx = len(stk) - 1
cnt = 0
while stk[idx] == 'W' and idx >= 0:
idx -= 1
cnt += 1
cnt2 = cnt
while cnt > 0:
stk.pop()
cnt -= 1
stk.append('A')
while cnt2 > 0:
stk.append('C')
cnt2 -= 1
print("".join(stk))