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

역방향

Jedy_Kim 2021. 5. 14. 13:47
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

1

입력의 예 2

7

5 3 2 4 7 6 1

1 4

출력의 예 2

7

입력의 예 3

10

9 5 1 3 4 2 6 7 10 8

3 8

출력의 예 3

2

설명


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

 

# 코드

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

 

반응형

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

상하좌우 SHIFT 알고리즘  (0) 2021.05.14
회전 알고리즘  (0) 2021.05.14
방향 회전 알고리즘  (0) 2021.05.14
streetree  (0) 2021.05.13
bingo  (0) 2021.05.12