Baekjoon 문제 풀기 (2920번 : 음계) Python
2920번 : 음계
1. 문제읽기
문자열 뒤집기 문제.
문자열을 뒤집는 방법을 알면 쉬운 문제이다.
리스트가 정해져 있으므로 단순 문제만 해결하려면 그냥 문자열을 만들어주는 방법도 있다.
2. 제출 코드
reverse=True 가 생각이 안나서 처음에는 reverse()를 쓰려고했는데, sort() 처럼 문자열 자체가 뒤집히는 함수여서 패스.
reversed()함수가 있길래 써보려고 했는데 list를 리턴하는 것이 아니라 list_reverseiterator 라는 객체로 리턴이 되어서 잘 모르겠어서 패스.
그러다가 reverse=True가 생각나서 풀었다.
a = list(map(int, input().split()))
asc = [1, 2, 3, 4, 5, 6, 7, 8]
des = sorted(asc, reverse=True)
if a == asc:
print("ascending")
elif a == des:
print("descending")
else:
print("mixed")
3. 공부할 것
예전에 정리한 문자열 뒤집기 방법을 이용해서 list[::-1] 를 쓰면 됐는데 생각이 나질 않았다!!!
그리고 reversed()를 쓰는 방법을 잘 몰랐어서 궁금해서 정리한다.
reversed()
- reverse iterator를 반환하는 함수.
- list, tuple 등으로 다시 감싸줘야 사본을 만들어 사용할 수 있다.
나는 iterator 자체로 사용하려고 해서 계속 'list_reverseiterator' object is not subscriptable
오류가 났었다.
해석하자면 리스트 아닌데 왜 인덱스로 접근하려고하냐! 인데, 오류를 해결하려면 list로 한번 더 감싸주면 된다.
뒤집기 방법은 슬라이싱이 가장 효율이 좋다고 하니 꼭 좀 기억해서 쓰자!!!
댓글남기기