[ 6093 ] 코드업 6093 : 이상한 출석 번호 부르기 2
< 문제 >
- 무작위 출석을 거꾸로 부르는 프로그램을 작성해라.
< 문제 푸는 방법 >
- 부른 순서대로 기록하고, 거꾸로 출력한다.
- 여러 방법이 존재한다. 리스트를 역순으로 만들거나, 역순으로 조회하는 방법 등을 사용할 수 있다.
< 코드 1 > reversed()사용
num = int(input())
a = list(map(int, input().split())) # 문자열 리스트로 입력받기
print(" ".join(repr(i) for i in reversed(a))) #대괄호 없이 거꾸로 출력
- reversed 함수는 파이썬 인터프리터에서 제공하는 내장함수이다.
- 반환형은 reversed 객체를 반환한다. ( 입력된 매개변수를 reversed object로 반환함, )
=> 특정 객체를 사용하고 싶다면 형변환을 반드시 해주어야 한다. ex) list(reversed(a)) 이런 식으로!
< 코드 2 > reversed() 사용, str로 입력받기
num = int(input())
a = list(map(str, input().split())) # 문자열 리스트로 입력받기
print (' '.join(reversed(a))) #대괄호 없이 거꾸로 출력
- list (map(str, input().split()) 으로 문자열로 입력받았기 때문에 repr 은 필요 없다 !!!!
< 코드 3 > reverse() 사용
num = int(input())
a = list(map(str, input().split()))
a.reverse()
print (' '.join(a))
- list에서 제공하는 멤버함수이다. => list 만 사용가능한 함수라는 것 !
- 반환형이 없다. (바로 print 가 안 되더라구요ㅠ)
=> for i in a.reverse()는 실행 불가능 (NoneType이기 때문)
< 코드 4 > 슬라이스 사용
num = int(input())
a = list(map(str, input().split()))
for i in a[::-1]:
print(i, end= ' ')
- 리스트의 순서는 바꾸지 않고, 슬라이스를 이용해 맨 뒤 부터 출력하는 코드입니다.
=> print (a) 를 하면, 순서가 바뀌지 않은 것을 확인할 수 있습니다.
- print의 end를 사용하여 출력형식을 맞추어줍니다.
📌 정리 📌
- reversed와 reverse의 차이점 확인하기
- 출력형식 맞춰서 출력하기 (join, repr, end 활용 ~ )