CS/알고리즘_문제풀이(파이썬)

방향 회전 알고리즘

Jedy_Kim 2021. 5. 14. 13:36
728x90

문제


길이가 n인 수열이 있다.

이 수열에서 x 번 인덱스의 y 칸 뒤의 수를 출력하는 프로그램을 작성하시오.

단, 이 수열의 끝은 처음과 연결되어있다. 인덱스가 0번부터 시작한다면, 0 번 인덱스 1 칸 뒤는 n-1 번 인덱스이다.

본 문제에서는 시계 방향 회전을 정방향 회전이라고 정의했습니다.

입력


첫 번째 줄에 수열의 길이 n 이 주어진다.

두 번째 줄에 수열을 구성하는 수 ai 가 n 개가 주어진다. 같은 수의 ai 는 존재하지 않는다.

세 번째 줄에 x 와 y 가 주어진다.

(3 ≤ n ≤ 100, 1 ≤ ai ≤ n, 0 ≤ x ≤ n-1, 1 ≤ y ≤ n)

출력


첫 줄에 수열의 x 번 인덱스의 y 칸 뒤에 있는 수를 출력한다.

입력의 예 1 

5

2 3 1 5 4

1 4

출력의 예 1

2

입력의 예 2

8

1 3 4 2 8 7 5 6

5 6

출력의 예 2 

2

입력의 예 3 

9

1 6 9 7 4 2 3 5 8

4 8

출력의 예 3 

7

입력의 예 4 

15

5 3 1 2 4 7 11 14 9 8 6 12 13 15 10

11 12

출력의 예 4 

9

설명

입력의 예 1 번의 경우, 1번 인덱스에 있는 3에서 네 칸 뒤로 가면 1, 5, 4를 지나서 2에 도착한다.

 

# 코드

1
2
3
4
5
6
7
8
9
10
11
12
13
14
= int(input())
getList = list(map(int, input().split()))
getPos = list(map(int, input().split()))
 
xPos = getPos[0]
yPos = getPos[1]
 
if xPos + yPos >= n:
  xPos = xPos + yPos - n
elif xPos + yPos < n:
  xPos = xPos + yPos
  
print(getList[xPos])
 
cs

 

반응형

'CS > 알고리즘_문제풀이(파이썬)' 카테고리의 다른 글

회전 알고리즘  (0) 2021.05.14
역방향  (0) 2021.05.14
streetree  (0) 2021.05.13
bingo  (0) 2021.05.12
colorpaper  (0) 2021.05.11