성장일기
[python] 백준 5430 - AC 본문
AC는 R(뒤집기), D(버리기) 연산이 있는 함수
첫째 줄에 테스트케이스의 개수,
다음 줄에는 수행할 함수,
배열의 개수,
배열에 들어있는 수가 주어진다.
연산을 수행한 후 결과를 출력하라
🧨 이 문제를 3시간은 넘게 잡고있었다.
단순해 보였는데 시간초과, 런타임에러 다양하게 겪었다.
ㅠㅠ,, 그래도 내 첫 골드문제!!
from collections import deque
n=int(input()) #테스트케이스의 수
for i in range(n):
check=0 #R이 몇번 들어갔는지 체크하기 위하여 선언
length=0 #길이
error=False #에러여부
order=input().rstrip() #연산 명령
num=int(input().rstrip()) #배열 수
case=input().rstrip() #배열
case=case[1:-1] #[,] 없애기
cases=case.split(',') #나누기
case=deque(cases)
if case[0]=='':
length=0
else:
length=len(case)
try: #인덱스 에러가 계속 나서 그냥 try문 써버림
for i in order:
if i=='R':
check+=1 #check이 홀수면 뒤에서부터 출력하기 위함
elif i=='D':
if length==0:
error=True
break
elif check%2==0:
case.popleft() #check이 짝수면 앞의 수 없애기
else:
case.pop() #check이 홀수면 뒤의 수 없애기
if error==True:
print('error')
else:
if check%2==0:
string=','.join(list(case))
else:
case.reverse()
string=','.join(list(case))
print('['+string+']')
except:
print('error')
'알고리즘 문제' 카테고리의 다른 글
[python] 백준 13412 - 서로소 쌍 (0) | 2022.01.08 |
---|---|
실버 1 🎉 (0) | 2022.01.08 |
[python] 백준 1037 - 약수 (0) | 2022.01.07 |
[python] 백준 10610 - 30 (0) | 2022.01.07 |
[python] 백준 1026 - 보물 (0) | 2022.01.06 |