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
반응형