https://practice.geeksforgeeks.org/problems/reverse-an-array/0
배열이 주어졌을 때, 배열의 역순을 출력하는 문제다. 귀찮게도 이 문제는 직접 input을 읽는 코드까지 작정해야한다.
우선 문제 설명에 맞춰서 input을 읽으려 하는데, 문제가 발생했다.
if __name__ == "__main__":
t = int(input())
for _ in range(t):
n = int(input())
arr=[]
for _ in range(n):
arr.append(input())
for ele in reverse(n,arr):
print(ele, end=" ")
print("")
![](https://www.think-like-a-programmer.com/wp-content/uploads/2021/03/Screen-Shot-2021-03-09-at-11.31.05-AM.png)
더 이상 읽을게 없다고 난리친다.
if __name__ == "__main__": t = int(input()) <strong> print(t)</strong> for _ in range(t): n = int(input()) <strong> print(n)</strong> arr=[] for _ in range(n): arr.append(input()) for ele in reverse(n,arr): print(ele, end=" ") print("")
위와 같이 print문을 추가해도 마찬가지다.
저렇게 두번 틀리고 나니까 Python 에서 input()은 한 줄 씩 읽는다는걸 기억해냈다.
다음과 같이 고치니 해결되었다.
if __name__ == "__main__": t = int(input()) # print(t) for _ in range(t): n = int(input()) # print(n) arr = input().split(" ") # print(arr) for ele in reverse(n,arr): print(ele, end=" ") print("")
알고리즘은 그냥 array index를 역순으로 만들어서 return 하게 만들었다.
def reverse(n, arr): ret=[] for i in range(n-1, -1, -1): ret.append(arr[i]) return ret
첫번째 시작 인덱스 (n-1)는 inclusive, 두번째 끝 인덱스는 (-1)는 exclusive, 세번째 인자는 증감폭 (-1) 해서 새로운 배열값을 돌려준다. 끝.
![](https://www.think-like-a-programmer.com/wp-content/uploads/2021/03/Screen-Shot-2021-03-09-at-11.36.27-AM.png)
전체 코드
def reverse(n, arr): ret=[] for i in range(n-1, -1, -1): ret.append(arr[i]) return ret if __name__ == "__main__": t = int(input()) # print(t) for _ in range(t): n = int(input()) # print(n) arr = input().split(" ") # print(arr) for ele in reverse(n,arr): print(ele, end=" ") print("")