728x90
반응형
이번 포스팅에서 다룰 SW Expert Academy SWEA 5097 회전 문제는 N개의 숫자로 이루어진 수열의 맨 앞의 숫자를 맨 뒤로 보내는 작업을 M번 했을 때, 수열의 맨 앞에 있는 숫자를 출력하는 문제이다. queue 큐 자료구조에 관한 문제로 난이도는 D2이다.
출처: https://swexpertacademy.com/main/learn/course/subjectDetail.do?courseId=AVuPDN86AAXw5UW6&subjectId=AWOVIoJqqfYDFAWg
SW Expert Academy 5097 회전 문제 정보
자료구조 분류
- 큐 Queue
난이도
- D2
회전 문제 요약
- 10억 이하의 자연수 N개로 이루어진 수열이 주어진다. (3≤N≤20)
- 맨 앞의 숫자를 맨 뒤로 보내는 작업을 M번 했을 때, 수열의 맨 앞에 있는 숫자를 출력한다. (N≤M≤1000)
문제 풀이 과정
- deque 자료구조를 사용하기 위해 import한다.
- 데크의 맨 앞 원소를 삭제하고 맨 뒤에 삽입하는 작업을 M번 반복한다.
- 테스트 케이스 번호, 수열의 맨 앞에 있는 숫자를 출력한다.
코드 및 설명
- q - N개의 숫자로 이루어진 수열을 저장한 데크
- q.rotate(-M)는 q를 M 만큼 좌측으로 회전하는 함수로, 9~11번 줄 코드와 같은 기능이다.
# deque 자료구조를 사용하기 위해 선언
from collections import deque
for tc in range(int(input())):
N, M = map(int, input().split())
q = deque(list(map(int, input().split())))
# q.rotate(-M) 와 같다
for i in range(M):
poppedNum = q.popleft() # deque의 맨 앞 element를 삭제하고 반환
q.append(poppedNum) # deque의 맨 뒤로 삽입
print("#%d %d" % (tc + 1, q.popleft()))
SW Expert Academy SWEA 5097 회전 문제는 queue 자료구조 활용 문제이며 파이썬으로 구현하였다. 난이도는 D2이고, 원형 큐를 구현하여 해결하려 했지만 잘 풀리지 않아 queue 큐 라이브러리를 활용하여 deque 데크 자료구조를 사용하여 해결하였다.
728x90
반응형
'Algorithm Problem Solving > SW Expert Academy' 카테고리의 다른 글
[Python] SWEA 5102 노드의 거리 (0) | 2021.08.09 |
---|---|
[Python] SWEA 5099 피자 굽기 (0) | 2021.08.08 |
[Python] SWEA 4880 토너먼트 카드게임 (0) | 2021.08.05 |
[Python] SWEA 4874 Forth (0) | 2021.08.03 |
[Python] SWEA 4869 종이 붙이기 (0) | 2021.07.30 |
댓글