Algorithm/코딩테스트 (Python)
[SWEA 5097][파이썬 S/W 문제해결 기본]. 6일차 - 회전
싱브이
2023. 11. 10. 20:22
728x90
반응형
문제
N개의 숫자로 이루어진 수열이 주어진다. 맨 앞의 숫자를 맨 뒤로 보내는 작업을 M번 했을 때, 수열의 맨 앞에 있는 숫자를 출력하는 프로그램을 만드시오.
내 생각
M번 이동만 하면 된다.
앞에서 삭제하면서 새롭게 뒤로 넣어준다 ! (Queue)
두번째 방법은 원형 큐 ! 이건 인덱스만 변경해주면 된다 완전 간단 그 자체
front+M : front 원소를 M번 이동,
%N : N길이를 초과하면 인덱스를 돌려준다
내 코드
1.
T = int(input())
for test_case in range(1, T + 1):
N, M = map(int, input().split())
nums = list(map(int, input().split()))
for _ in range(M):
nums.append(nums.pop(0))
print(f'#{test_case} {nums[0]}')
2.
T = int(input())
for test_case in range(1, T + 1):
N, M = map(int, input().split())
nums = list(map(int, input().split()))
front = 0
front = (front + M) % N
print(f'#{test_case} {nums[front]}')
728x90
반응형