백준 5430(AC) -Python(파이썬) - 자료구조
반응형
5430번: AC
각 테스트 케이스에 대해서, 입력으로 주어진 정수 배열에 함수를 수행한 결과를 출력한다. 만약, 에러가 발생한 경우에는 error를 출력한다.
www.acmicpc.net


문제 풀이

1. 일단 수행할 함수, 배열에 들었는 수의 개수, 배열에 들어있는 정수를 받아들인다.
2. 배열에 들어있는 정수는 항상 "["+배열에 들어 있는 정수+"]" 구조로 이루어졌다.
"[]"을 제외한 값을 리스트로 받아들이기 위해서 인덱스 1부터 -1까지의 인덱스르 리스트로 받아들인다.[1:-1]
| 배열 | "R" | "D" | "D" | |||
| 4 | 1 | |||||
| 3 | 2 | 1 | ||||
| 2 | 3 | 2 | 1 | |||
| 1 | 4 | 3 | 2 |
이런 느낌으로 RDD 함수가 진행되면 [ 2,1 ]이 남는다.
📌 문제 풀면서 주의할점
1. 파이썬에서는 deque 라이브러리를 사용
2. reverse를 할때마다 하면 시간 초과가 나기 때문에
"R"을 할 때마다 cnt값을 증가시켜 cnt가 2로 나누어지는지 안 나누어지는지 확인 필요
문제 풀이
① 테스트 케이스의 개수, 수행할 함수, 배열에 들어있는 수의 개수, 배열안의 정수 입력
② 배열에 들어있는 수의 개수가 0일 경우 배열을 초기화
③ 함수를 수행할 때마다 "R","D"의 값인지 체크
④
1. "R"인 경우 cnt +1
2. "D"인 경우
2-1. q의 길이가 0인 경우 error로 출력하고 break
2-2. q의 길이가 0이 아닌 경우
cnt%2==0( reverse를 안 하기 때문에 ) : 큐를 왼쪽에서 pop
cnt%2!=0( reverse이기 때문에 ) : 큐를 오른쪽에서 pop
3. break가 발생하지 않았을 경우 실행하도록 ( else문 실행 )
3-1. cnt%2==0(reverse 안 하기 때문에) : 그대로 출력
3-2. cnt%2!=0(reverse 하기 때문에):큐를 reverse 한 후에 출력
💻 Python(파이썬)
from collections import deque
import sys
#테스트 케이스의 개수
t = int(sys.stdin.readline())
for i in range(t):
#수행할 함수
p = sys.stdin.readline()
#배열에 들어있는 수의 개수
n = int(sys.stdin.readline())
#배열 안의 정수 []을 제외하기 위해서 인덱스 [1:-1]
arr = sys.stdin.readline().rstrip()[1:-1].split(',')
#큐로 구현 -deque 라이브러리 사용
q = deque(arr)
#R의 개수 체크
cnt = 0
#n의 개수가 0개 일때는 배열을 초기화
if n == 0:
q = []
for j in p:
#'R'인 경우
if j == 'R':
#cnt값 증가
cnt += 1
#'D'인 경우
elif j == 'D':
#큐의 길이 0인 경우는 무조건 error
if len(q) == 0:
print("error")
break
else:
#reverse 안하기 때문에 왼쪽에서 pop
if cnt % 2 == 0:
q.popleft()
#reverse 하기 때문에 오른쪽에서 pop
else:
q.pop()
#break를 안할 경우
else:
#reverse 안하기 때문에 그래도 출력
if cnt % 2 == 0:
print("[" + ",".join(q) + "]")
#reverse 하기 때문에 reverse 하기
else:
q.reverse()
print("[" + ",".join(q) + "]")
💻 Java( 자바 )
...나중에 ...해야겠다..
반응형
'[백준] Python,Java로 풀기📖 > 자료구조' 카테고리의 다른 글
| 백준 9012(괄호) - 스택 (1) | 2024.10.14 |
|---|---|
| 백준 1966(프린터 큐) - Python(파이썬) - 큐,자료구조 (0) | 2022.07.03 |
| 백준 10828(스택) - Python(파이썬),Java(자바) -자료구조,스택 (0) | 2022.06.07 |
| 백준 1158(요세푸스 문제) - Python(파이썬),Java(자바) - 자료구조(큐) (0) | 2022.06.07 |
| 백준 1927(최소 힙) - Python(파이썬) - 자료구조 (0) | 2022.06.01 |
댓글
이 글 공유하기
다른 글
-
백준 9012(괄호) - 스택
백준 9012(괄호) - 스택
2024.10.14 -
백준 1966(프린터 큐) - Python(파이썬) - 큐,자료구조
백준 1966(프린터 큐) - Python(파이썬) - 큐,자료구조
2022.07.03 -
백준 10828(스택) - Python(파이썬),Java(자바) -자료구조,스택
백준 10828(스택) - Python(파이썬),Java(자바) -자료구조,스택
2022.06.07 -
백준 1158(요세푸스 문제) - Python(파이썬),Java(자바) - 자료구조(큐)
백준 1158(요세푸스 문제) - Python(파이썬),Java(자바) - 자료구조(큐)
2022.06.07