Skip to content

Commit 68d7d4c

Browse files
committed
백준 5430번 AC
문제 링크: https://www.acmicpc.net/problem/5430
1 parent c6b4a7a commit 68d7d4c

File tree

4 files changed

+81
-0
lines changed

4 files changed

+81
-0
lines changed

백준 5430번 AC/main.py

+41
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
import sys
2+
from collections import deque
3+
from typing import Deque
4+
5+
6+
def solve():
7+
T = int(sys.stdin.readline().strip())
8+
9+
for _ in range(T):
10+
fs = sys.stdin.readline().strip()
11+
_ = int(sys.stdin.readline().strip())
12+
line = sys.stdin.readline().strip()
13+
line = line[1:-1]
14+
dts: Deque = deque(map(int, line.split(','))) if line != '' else deque([])
15+
16+
error: bool = False
17+
reverse: bool = False
18+
19+
for f in fs:
20+
if f == 'R':
21+
reverse = not reverse
22+
elif f == 'D':
23+
if len(dts) > 0:
24+
if reverse:
25+
dts.pop()
26+
else:
27+
dts.popleft()
28+
elif len(dts) == 0:
29+
error = True
30+
break
31+
32+
if error:
33+
print('error')
34+
else:
35+
if reverse:
36+
dts.reverse()
37+
print('[' + ','.join(map(str, dts)) + ']')
38+
39+
40+
if __name__ == '__main__':
41+
solve()

백준 5430번 AC/test1.txt

+13
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
4
2+
RDD
3+
4
4+
[1,2,3,4]
5+
DD
6+
1
7+
[42]
8+
RRD
9+
6
10+
[1,1,2,3,5,8]
11+
D
12+
0
13+
[]

백준 5430번 AC/test1_answer.txt

+4
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
[2,1]
2+
error
3+
[1,2,3,5,8]
4+
error

백준 5430번 AC/test_main.py

+23
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
import sys
2+
from pathlib import Path
3+
from unittest import TestCase
4+
from main import solve
5+
6+
7+
class Test(TestCase):
8+
def my_solve(self, testcase_input):
9+
sys.stdin = open(testcase_input, 'r')
10+
stdout = sys.stdout
11+
sys.stdout = open('stdout.txt', 'w')
12+
solve()
13+
sys.stdout.close()
14+
sys.stdout = stdout
15+
16+
def test_solve(self, testcase_number: str):
17+
self.my_solve('test' + testcase_number + '.txt')
18+
self.assertEqual(
19+
Path('test' + testcase_number + '_answer.txt').read_text().strip(),
20+
Path('stdout.txt').read_text().strip())
21+
22+
def test1_solve(self):
23+
self.test_solve('1')

0 commit comments

Comments
 (0)