본문 바로가기
알고리즘

[BAEKJOON] 2750 2751 10989 수 정렬하기 1~3

by mAlfred 2023. 9. 15.
반응형

문제

N개의 수가 주어졌을 때, 이를 오름차순으로 정렬하는 프로그램을 작성하시오.

입력

첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수가 주어진다. 이 수는 절댓값이 1,000보다 작거나 같은 정수이다. 수는 중복되지 않는다.

출력

첫째 줄부터 N개의 줄에 오름차순으로 정렬한 결과를 한 줄에 하나씩 출력한다.

예제 입력 1 복사

5
5
2
3
4
1

예제 출력 1 복사

1
2
3
4
5

그럿다 정렬하면 된다.

크게 조건도 없다.

 

import sys
import copy
import math
from collections import deque

def solution(n):
    stk = []
    for _ in range(n):
        v = int(sys.stdin.readline().strip())
        stk.append(v)

    stk.sort()

    for i in stk:
        print(i)

n = int(sys.stdin.readline().strip())
solution(n)

문제

N개의 수가 주어졌을 때, 이를 오름차순으로 정렬하는 프로그램을 작성하시오.

입력

첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수가 주어진다. 이 수는 절댓값이 1,000,000보다 작거나 같은 정수이다. 수는 중복되지 않는다.

출력

첫째 줄부터 N개의 줄에 오름차순으로 정렬한 결과를 한 줄에 하나씩 출력한다.

예제 입력 1 복사

5
5
4
3
2
1

예제 출력 1 복사

1
2
3
4
5

이 문제 역시 조건이 동일하다.

import sys
import copy
import math
from collections import deque

def solution(n):
    stk = []
    for _ in range(n):
        v = int(sys.stdin.readline().strip())
        stk.append(v)

    stk.sort()

    for i in stk:
        print(i)

n = int(sys.stdin.readline().strip())
solution(n)

문제

N개의 수가 주어졌을 때, 이를 오름차순으로 정렬하는 프로그램을 작성하시오.

입력

첫째 줄에 수의 개수 N(1 ≤ N ≤ 10,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수가 주어진다. 이 수는 10,000보다 작거나 같은 자연수이다.

출력

첫째 줄부터 N개의 줄에 오름차순으로 정렬한 결과를 한 줄에 하나씩 출력한다.

예제 입력 1 복사

10
5
2
3
1
4
2
3
5
1
7

예제 출력 1 복사

1
1
2
2
3
3
4
5
5
7

그러나 이 문제 같은 경우는 개수가 어마어마하게 크다..

정렬을 하게 된다면? 시간 초를 초과하게 된다.

그래서 선택한 방법은 다음과 같다.

딕셔너리를 통해 해당 값이 등록되있다면 갯수를 카운팅

그 갯수를 카운팅한 값을 마지막에 출력

그렇게 되면 o(n)이 되게 되는 것이다.

맞나?

 

import sys
import copy
import math
from collections import deque

def solution(n):
    a = {}

    for _ in range(n):
        v = int(sys.stdin.readline().strip())
        try:
            a[v] += 1
        except:
            a[v] = 1    

   
    a = sorted(a.items(), key= lambda x: x[0], reverse=False)
   
    for x, y in a:
        # print(x, y)
        for _ in range(y):
            print(x)


n = int(sys.stdin.readline().strip())
solution(n)

암튼 코드는 다음과 같음

반응형

'알고리즘' 카테고리의 다른 글

[BAEKJOON] 10926 ??!  (0) 2023.11.03
[BAEKJOON] 10773 제로  (0) 2023.11.03
[BAEKJOON] 10845 큐  (0) 2023.09.12
[BAEKJOON] 1926 그림  (0) 2023.08.26
[BAEKJOON] 25238 가희와 방어율 무시  (0) 2023.08.12