CodeUp(코드업) 풀이 (1094번)

이 포스팅은 codeup.kr(코드업)의 문제를 Python3로 풀고 정리한 내용입니다.


1094 : [기초-종합+배열] 이상한 출석 번호 부르기2

문제 설명

경기과학고 X 선생님은 정보과학 수업을 시작하기 전에 이상한 출석을 부른다.

학생들의 얼굴과 이름을 빨리 익히기 위해 번호를 무작위(랜덤)으로 부르는데,

경곽이는 선생님이 부른 번호들을 기억하고 있다가 거꾸로 불러보는 연습을 해보고 싶어졌다.

출석 번호를 n번 무작위로 불렀을 때, 부른 번호를 거꾸로 출력해 보자.

입력

번호를 부른 횟수(n)가 첫 줄에 입력된다.
(n, 1 ~ 10000)
부른 횟수 만큼 랜덤 번호(k)가 두 번째 줄에 공백을 사이에 두고 순서대로 입력된다.
(k, 1~23)

출력

출석을 부른 번호 순서를 바꾸어 공백을 두고 출력한다.

입력 예시

10
10 4 2 3 6 6 7 9 8 5

출력 예시

5 8 9 7 6 6 3 2 4 10

내 풀이1

for in range에 증가폭을 음수로 주는 방법

1
2
3
4
5
6
7
8
9
10
11
12
13
n = int(input());
a = input().split();

numbers = [];

for i in range(0, n):
numbers.append(int(a[i]));
# print(arr[i]);


# n-1에서 0까지 역순으로 숫자 생성
for i in range(n-1, -1, -1):
print(numbers[i], end= ' ');
  • range는 숫자가 증가하는 기본 값이 양수 1이기 때문에 역순으로 생성하려면, 증가 폭을 음수로 지정한다.

내 풀이 2

reversed를 이용한 방법

1
2
3
4
5
6
7
8
9
10
11
12
n = int(input());
a = input().split();

numbers = [];

for i in range(0, n):
numbers.append(int(a[i]));

# range에 reverse를 이용하여 숫자의 순서를 반대로 뒤집는다.
# 9부터 0까지 10번 반복한다.
for i in reversed(range(n)):
print(numbers[i], end=' ');
  • reversed를 이용하여 숫자의 순서를 반대로 뒤집어서 출력한다.
  • 형태
    • for 변수 in reversed(range(횟수))
    • for 변수 in reversed(range(시작, 끝))
    • for 변수 in reversed(range(시작, 끝, 증가폭))

모범 답안

while문을 이용해 거꾸로 출력

1
2
3
4
5
6
7
8
9
10
11
12
13
arr=[]

a=input()
b=input().split()

n=int(a)
for i in range(n) :
arr.append(int(b[i]))

i=n-1
while i>=0 :
print(arr[i], end=' ')
i-=1

참고 링크