Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
Tags
- 로봇 청소기
- 크루스칼
- 2018 KAKAO BLIND RECRUITMENT
- 백준
- 프로그래머스
- 최소 신장 트리
- BFS
- 투포인터
- GIT
- 우선순위큐
- 스택
- 플로이드와샬
- 플로이드 와샬
- 브루트포스
- 2019 KAKAO BLIND RECRUITMENT
- 백트래킹
- 투 포인터
- 조합
- 다익스트라
- Spring
- 2021 KAKAO BLIND RECRUITMENT
- SWEA
- 2020 KAKAO BLIND RECRUITMENT
- 2020 카카오 인턴십
- 시뮬레이션
- 비트마스킹
- 구현
- 트라이
- 이분탐색
- 파이썬
Archives
- Today
- Total
개발조아
[BOJ/백준] 백준 5430 AC 파이썬 본문
728x90
문제 링크 : https://www.acmicpc.net/problem/5430
5430번: AC
각 테스트 케이스에 대해서, 입력으로 주어진 정수 배열에 함수를 수행한 결과를 출력한다. 만약, 에러가 발생한 경우에는 error를 출력한다.
www.acmicpc.net
Deque를 사용하면 간단하게 풀수 있다.
시작할때 popleft로 앞에서부터 빼다가 R이 오면 pop로 바꾸고 또 R이 오면 popleft로 바꾸면 된다.
모든 명령 수행 후 남은 숫자는 현재 방향에 따라 모든 숫자를 리스트에 담고 join으로 , 추가하면 된다.
주의할 점이라면 split해서 값이 없다면 ''문자가 들어가기 때문에 체크해줘야한다.
from sys import stdin
from collections import deque
input = stdin.readline
tc = int(input())
def solv():
ps = input().strip()
n = int(input())
arr = input().strip('[]\n').split(',')
print(simul(arr,ps))
def simul(arr,ps):
dq = deque(arr)
dir = 0
for p in ps:
if p == 'R':
dir = (dir + 1) % 2
else:
if not dq or not dq[-1]:
return 'error'
if dir == 0:
dq.popleft()
else:
dq.pop()
ans = []
while dq:
if dir == 0:
ans.append(dq.popleft())
else:
ans.append(dq.pop())
ans = ','.join(ans)
return f'[{ans}]'
for _ in range(tc):
solv()
'알고리즘 > 백준' 카테고리의 다른 글
[BOJ/백준] 백준 1022 소용돌이 예쁘게 출력하기 파이썬 (0) | 2021.08.15 |
---|---|
[BOJ/백준] 백준 2504 괄호의 값 파이썬 (0) | 2021.08.10 |
[BOJ/백준] 백준 22351 수학은 체육과목 입니다 3 파이썬 (0) | 2021.08.07 |
[BOJ/백준] 백준 22352 항체인식 파이썬 (0) | 2021.08.07 |
[BOJ/백준] 백준 3197 백조의 호수 파이썬 (0) | 2021.08.06 |
Comments