수 정렬하기 2 성공분류
시간 제한 |
메모리 제한 |
제출 |
정답 |
맞은 사람 |
정답 비율 |
2 초 |
256 MB |
90105 |
26371 |
16992 |
31.173% |
https://www.acmicpc.net/problem/2751
문제
N개의 수가 주어졌을 때, 이를 오름차순으로 정렬하는 프로그램을 작성하시오.
입력
첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 숫자가 주어진다. 이 수는 절댓값이 1,000,000보다 작거나 같은 정수이다. 수는 중복되지 않는다.
출력
첫째 줄부터 N개의 줄에 오름차순으로 정렬한 결과를 한 줄에 하나씩 출력한다.
알고리즘 분류
백준 알고리즘 # 2751번 : 수 정렬하기 2
# 풀이 1
n = int(input())
ls = []
for _ in range(n):
ls.append(int(input()))
s = sorted(ls)
for i in s:
print(i)
# 풀이 2
n = int(input())
ls = []
for i in range(n):
ls.append(int(input()))
for i in reversed(ls):
print(i)
풀이
문제를 보면 정말 쉬운데 시간초과가 3번이나 났어요..(당황)
3번째 풀이를 하다가 뭔가 이상해서 구글링을 해보니
언어 설정을 "Python 3"이 아닌 "PyPy3"으로 해야된다 하더라구요..!!😂
PyPy에 대해서 궁금하신 분들은 아래 출처에 가서 확인해보세요🤞
자 이렇게 시간초과된 이유도 알았으니 간단한 풀이를 하자면
변수 n으로 테스트 케이스의 수 5개를 받고, 변수 ls를 설정해서 [] 리스트로 초기화시켜줬어요.
다음으로 for문으로 n의 수만큼 반복을 해주면서, 테스트 케이스의 수를
ls로 설정한 []에 반복될 때마다 append(추가)했습니다.
그리고 풀이 1에서는 이것을 s라는 변수를 새로 설정해서 sorted(ls)로
기본적으로 오름차순으로 정렬되는 함수를 사용했구요.
풀이 2에서는 정렬하는 함수를 따로 쓰지 않고 reversed를 이용해서 뒤집어서 출력해주면 끄-읏!👏
(풀이 2처럼 하게되면 정렬한 것이 아니라 주 목적에 위배되는 것 같아요.)
자세한 코드가 궁금하신 분들은 아래 GitHub 코드를 참고해주세요🙏
최종 소스코드
'코딩테스트 > 백준 알고리즘' 카테고리의 다른 글
백준 알고리즘 | 10989 : 수 정렬하기 3 (Python / 파이썬) (5) | 2020.10.12 |
---|---|
백준 알고리즘 | 1697 : 숨바꼭질 (Python / 파이썬) (6) | 2020.09.27 |
백준 알고리즘 | 1003 : 피보나치 함수 (Python / 파이썬) (0) | 2020.09.25 |
백준 알고리즘 | 10817 : 세 수 (Python / 파이썬) (0) | 2020.09.25 |
백준 알고리즘 | 1260 : DFS와 BFS (Python / 파이썬) (0) | 2020.09.25 |
댓글