파이썬 코딩테스트 - SWEA 24001

그거아냐·2025년 5월 19일

코딩테스트

목록 보기
3/3
post-thumbnail

제일 단순해보이지만 골 때렸던 문제

기존 풀이

# ///////////////////////////////////////////////////////////////////////////////////
    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)

    # ///////////////////////////////////////////////////////////////////////////////////

그때 그때 계산해서 거리를 구했어야 했음

profile
지금 하고 있는 그거 그거아냐

0개의 댓글