728x90
반응형
입력
첫째 줄에 자연수 N(3<=N<=100)이 주어집니다. 두 번째 줄에 N개로 구성된 수열이 주어집니다.
출력
첫째 줄에 최대 증가수열의 길이를 출력합니다. 두 번째 줄에 가져간 순서대로 왼쪽 끝에서 가져갔으면 ‘L', 오른쪽 끝에서 가져갔으면 ’R'를 써 간 문자열을 출력합니다.(단 마지막에 남은 값은 왼쪽 끝으로 생각합니다.)
문제풀이
n = int(input())
a = list(map(int, input().split()))
lt = 0
rt = n-1
last = 0
res = ""
tmp = []
while lt <= rt:
if a[lt] > last:
tmp.append((a[lt], 'L'))
if a[rt] > last:
tmp.append((a[rt], 'R'))
tmp.sort()
if len(tmp) == 0:
break
else:
res = res + tmp[0][1]
last = tmp[0][0]
if tmp[0][1] == 'L':
lt += 1
else:
rt -= 1
tmp.clear()
print(len(res))
print(res)
728x90
반응형
'공부 > Python' 카테고리의 다른 글
[그리디] 백준 11047번 동전 0 (0) | 2025.03.30 |
---|---|
[그리디] 침몰하는 타이타닉 (0) | 2025.03.29 |
[그리디] 역수열 (0) | 2025.03.29 |
[그리디] 백준 2891번 카약과 강풍 (0) | 2025.03.29 |
[그리디] 백준 1543번 문서 검색 (0) | 2025.03.28 |