제일 단순해보이지만 골 때렸던 문제
기존 풀이
# ///////////////////////////////////////////////////////////////////////////////////
arr = input()
n = len(arr)
start = 0
cnt = 0
root = []
for i in range(0,n):
if arr[i] == "L":
start -= 1
elif arr[i] == "R":
start += 1
else:
cnt += 1
root.append(start)
rootMax = max(root)
rootMin = min(root) * -1
answer = max(rootMax, rootMin)+cnt
print(answer)
# ///////////////////////////////////////////////////////////////////////////////////
정답 풀이
# ///////////////////////////////////////////////////////////////////////////////////
s = input()
pos = 0
q = 0
max_dist = 0
for ch in s:
if ch == 'L':
pos -= 1
elif ch == 'R':
pos += 1
elif ch == '?':
q += 1
# 현재까지 이동한 위치 기준, ?로 만들 수 있는 최대 거리 계산
max_dist = max(max_dist, abs(pos + q), abs(pos - q))
print(max_dist)
# ///////////////////////////////////////////////////////////////////////////////////
그때 그때 계산해서 거리를 구했어야 했음