📃백준 2750
🌸수 정렬하기
구현, 정렬🌸
https://www.acmicpc.net/problem/2750
🔷 Submission Code
## 백준 2750
## 수 정렬하기
## 구현, 정렬
import sys
data = []
N = int(input())
for i in range(N):
temp = sys.stdin.readline().rstrip()
data.append(int(temp))
data.sort()
for i in data:
print(i)
🔶 프로토타입 코드
## 입력부분
import sys
data = []
N = int(input())
for i in range(N):
temp = sys.stdin.readline().rstrip() # rstrip() 개행 제거
data.append(temp) ##! data.append(temp)는 반례에 걸림
## 정렬
data.sort()
## 한줄씩 출력
for i in data:
print(i)
##! 반례)
##* 입력
# 2
# 9
# 10
##* 출력
# 10
# 9
위의 프로토타입 코드는 백준 2750번 문제에 제시되어 있는 테스트 케이스 1번의 입력을 받을 경우 정답 출력 케이스가 나오게 된다. 그래서 간단하게 코드를 잘 작성했다고 생각하고 바로 제출을 했는데 틀렸다는 결과를 얻게 되었다. 그래서 왜 틀렸는지 모르고 있다가 반례를 보고 코드가 2% 부족하다는 것을 알게 되었다. 반례를 보게 되면 입력으로 9와 10이 들어오게 된다. 그런데 프로토타입 코드를 거쳐서 출력을 하면 10, 9 순으로 출력이 된다. 문제에서 요구하는 출력은 9, 10 인 오름 차순으로 정렬되는 게 맞다. 이러한 잘못된 출력이 나오게 되는 이유는 data 리스트에 저장되어있는 데이터가 문자 타입이기 때문이다. 입력받은 값을 문자열로 저장하고 정렬했기 때문에 발생하는 오답인데, 문자열끼리 비교는 첫 번째 글자부터 순서대로 비교하기에 10보다 9가 더 큰 문자열이게 된다. 이는 입력 데이터를 int() 함수를 사용하여 타입을 형 변환해주면 바로 해결된다.
💚 출력 다른 방식, Unpacking
## 출력방식
# 방식1) for 반복문
for i in data:
print(i)
# 방식2) unpacking *
print(*data, sep="\n")
- unpacking은 packing과 반대 되는 개념임
- packing : 여러개의 객체를 하나로 합쳐줌
- unpacking : 여러개의 객체를 포함하고 잇는 하나의 객체를 풀어줌
- 인자 앞에 * 를 붙여서 unpacking을 해줌
- 위치 인자 unpacking : * 사용
- 키워드 인자 unpacking : ** 사용
위의 방식2는 unpacking operator *를 사용하여 data 리스트를 구분자를 넣어 바로 출력하는 방법이며 for 반복문을 도는 방식 1과 같은 결과물을 출력해준다.
💙 💚 💛
패킹참고 링크 : https://wikidocs.net/22801
3) packing, unpacking
`print`함수는 출력하고자하는 객체가 몇개던지, 즉 몇개의 인자를 받던지 상관하지 않고 출력해줍니다. ``` print(가나다 abc 123) print(가 ...
wikidocs.net
소스코드 링크 : https://github.com/KwanHoo/Data-Structure__Algorithm/blob/main/Python/baekjoon/bronze/baek_2750.py
GitHub - KwanHoo/Data-Structure__Algorithm: Data structures and algorithms practice code, Backjoon submission code
Data structures and algorithms practice code, Backjoon submission code - GitHub - KwanHoo/Data-Structure__Algorithm: Data structures and algorithms practice code, Backjoon submission code
github.com
👋 👦 💛
'Baekjoon > python' 카테고리의 다른 글
[백준 2480번] 주사위 세개 _ (조건문) python 풀이 (0) | 2022.04.13 |
---|---|
[백준 1003번] 피보나치 함수 _ (동적 프로그래밍) Python 풀이 (0) | 2022.04.13 |
[백준 2263번] 트리의 순회 | python 풀이 (0) | 2022.04.11 |
[백준 4256번] 트리 | python 풀이 (0) | 2022.04.08 |
[백준 2630 번] 색종이 만들기 | python 풀이 (0) | 2022.04.08 |