문제 요약

문제 링크 : https://atcoder.jp/contests/abc394/tasks/abc394_c

주어지는 문자열에서 WA 부분 문자열을 AC 라는 문자열로 계속해서 대체했을 때, 최종적으로 나타나는 문자열을 구하는 문제입니다.

예를 들어, WWA 라는 문자열이 있으면 WWAWAC → 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))

문제 태그