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
|
n = 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 |