✏️ 문제
https://www.acmicpc.net/problem/2750
2750번: 수 정렬하기
첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수가 주어진다. 이 수는 절댓값이 1,000보다 작거나 같은 정수이다. 수는 중복되지 않는다.
www.acmicpc.net
✏️ 풀이방법
1. 리스트에 값을 받아서 sort()메소드 또는 sorted()함수로 정렬
📌 코드
n = int(input())
list1 = []
for i in range(n):
list1.append(int(input()))
list1.sort() #메소드를 사용해서 리스트 정렬
for i in range(n):
print(list1[i])
n = int(input())
list1 = []
for i in range(n):
list1.append(int(input()))
list2 = sorted(list1) #함수를 사용해서 새로운 객체를 선언하고 리스트 정렬
for i in range(n):
print(list2[i])
📌 결과
#입력
5
5
2
3
4
1
#출력
1
2
3
4
5
🤔 시행착오.1
n = int(input())
list1 = []
for i in range(n):
list1.append(int(input()))
list2 = list1.sort()
for i in range(n):
print(list2[i])
TypeError: 'NoneType' object is not subscriptable
- TypeError: 'NoneType' object is not subscriptable에러는 변수가 리스트(list), 넘파이어레이(Numpy array), 딕셔너리라고 가정하고 해당 변수를 [ ](인덱스)로 접근하려고 해서 발생한 에러
- list2를 메소드로 선언했기 때문에 새로운 리스트 객체가 생성되지 않은 Nonetype이다. 그래서 두번째 반복문에서 인덱스로 접근하려고 하지만 객체가 없기 때문에 TypeError가 뜬다.
📝 메모
- 메소드와 함수를 잘 구별해서 사용하자!!
📒 다시보기
[Python] 04. 메소드와 함수
메소드(method) - 특정 자료에 대해 특정 기능을 수행하는 함수 = 문자열 자료형에는 문자열 메소드가 기능을 수행 = 문자열 자료형에 리스트 메소드가 기능을 수행할 수 없음 문자열메소드) 변수
somin0416.tistory.com
[Python] 12. sort()메소드와 sorted()함수
sort() 메소드 sort()는 메소드로 특정 자료(리스트)에 대해 정렬 기능을 수행 sort(): 오름차순 정렬 / sort(reverse = True): 내림차순 정렬 메소드는 반환값이 없기 때문에 기존 객체(리스트)를 정렬하여
somin0416.tistory.com
'Python > online judge' 카테고리의 다른 글
백준 [1181.단어 정렬] | Python (0) | 2024.01.15 |
---|---|
백준 [2745.진법 변환] | Python (0) | 2024.01.12 |
백준 [11653.소인수분해] | Python (0) | 2024.01.10 |
백준 [2581.소수] | Python (0) | 2024.01.10 |
백준 [1978.소수 찾기] | Python (1) | 2024.01.04 |