• 카테고리

    질문 & 답변
  • 세부 분야

    알고리즘 · 자료구조

  • 해결 여부

    미해결

제 코드도 한 번만 확인 부탁드립니다.

22.01.15 11:18 작성 조회수 114

0

코드를 다음과 같이 짜봤는데
너무 무식하게 짠 거 같아요ㅠㅠ
테스트는 다 통과 했는데, 실제 테스트에서는 너무 비효율적일까요?
 
import sys
# sys.stdin = open('input.txt','rt')
from collections import deque

n = int(input())
a = list(map(int, input().split()))
a = deque(a)

# 방법 1
b= []
ans = ''
cnt = 0
while True:
    if len(b) == 0:
        if a[0] < a[-1]:
            b.append(a.popleft())
            cnt += 1
            ans += 'L'
        else:
            b.append(a.pop())
            cnt += 1
            ans += 'R'
    else:
        if len(a) == 1:
            if a[0] == n:
                cnt += 1
                ans += 'L'
                break
            else:
                break
        else:
            if a[0] > b[-1] and a[-1] > b[-1]:
                if a[0] < a[-1]:
                    b.append(a.popleft())
                    cnt += 1
                    ans += 'L'
                else:
                    b.append(a.pop())
                    cnt += 1
                    ans += 'R'
            elif a[0] > b[-1] and a[-1] < b[-1]:
                b.append(a.popleft())
                cnt += 1
                ans += 'L'
            elif a[0] < b[-1] and a[-1] > b[-1]:
                b.append(a.pop())
                cnt += 1
                ans += 'R'
            else:
                break
print(cnt)
print(ans)
 
 

답변 1

답변을 작성해보세요.

0

안녕하세요^^

좀 코드가 길긴한데.. 잘하신 코드입니다.