문제
5430번: AC
각 테스트 케이스에 대해서, 입력으로 주어진 정수 배열에 함수를 수행한 결과를 출력한다. 만약, 에러가 발생한 경우에는 error를 출력한다.
www.acmicpc.net
알고리즘
- re 모듈과 deque 모듈을 사용하여 문제를 수행한다.
- 테스트 케이스만큼 반복하여 문제의 최종 결과를 출력한다.
- 수행해야할 함수를 반복하여 try- except문을 통해 조건을 수행한다.
- 에러의 유무에 따라 최종 결과값을 출력한다.
코드
import sys
import re
from collections import deque
t = int(sys.stdin.readline())
# 테스트 케이스만큼 반복하여 문제를 수행
for _ in range(t):
p = sys.stdin.readline()
n = int(sys.stdin.readline())
x = str(sys.stdin.readline().strip())
nums = re.findall("\d+", x) # re 모듈을 통해 문자열 안에 있는 정수만을 추출
array = deque(nums) # 추출한 정수를 deque에 추가
rev = False # 거꾸로 뒤집었는지 확인
error = False # 에러가 생겼는지 확인
res = [] # 최종 결과
# 수행해야할 함수를 반복하여 수행
for i in p:
# try- except문을 통해 에러를 찾는다.
try:
# R 함수이면 거꾸로 뒤집어 준다.
if i == "R":
if rev:
rev = False
else:
rev = True
# D 함수이면 rev 변수를 고려하여 앞과 뒤중에 하나를 리스트에서 팝해준다.
elif i == "D":
if rev:
array.pop()
else:
array.popleft()
# 에러가 발생하면 error 변수를 True로 바꿔준다.
except:
error = True
break
# error가 없다면 rev 변수를 고려하여 최종 결과를 출력
if not error:
if rev:
array.reverse()
res = ",".join(list(array))
else:
res = ",".join(list(array))
print("[" + res + "]")
# error가 있다면 error를 출력
else:
print("error")
github
GitHub - junjange/CodingTest: 내가 푼 코딩 테스트 문제와 해결법
내가 푼 코딩 테스트 문제와 해결법. Contribute to junjange/CodingTest development by creating an account on GitHub.
github.com
'CodingTest > Baekjoon' 카테고리의 다른 글
[baekjoon] 백준 2493번(파이썬): 탑 (0) | 2021.09.30 |
---|---|
[baekjoon] 백준 11286번(파이썬): 절댓값 힙 (0) | 2021.09.29 |
[baekjoon] 백준 18258번(파이썬): 큐 2 (0) | 2021.09.27 |
[baekjoon] 백준 1717번(파이썬): 집합의 표현 (0) | 2021.09.26 |
[baekjoon] 백준 1021번(파이썬): 회전하는 큐 (0) | 2021.09.25 |