[백준] 2751번 수 정렬하기 2

seeseal·2022년 4월 21일
0

코딩 테스트

목록 보기
10/22
post-thumbnail

문제 출처 : https://www.acmicpc.net/problem/2751

정답 코드 💻

import sys
n = int(sys.stdin.readline())
num=[]
for i in range(n) :
    num.append(int(sys.stdin.readline()))
num.sort()
for i in num :
    print(i)

실패 코드 💻

n = int(input())
num=[]
for i in range(n) :
    num.append(int(input()))
num.sort()
for i in range(n) :
    print(num[i])

👉🏻 input 함수를 사용해서 구현하니깐 시간 초과가 떴다.

def merge_sort(array) :
    if len(array)<=1:
        return array
    mid = len(array)//2
    left = merge_sort(array[:mid])
    right = merge_sort(array[mid:])

    i,j,k=0,0,0
    while i < len(left) and j <len(right) :
        if left[i] < right[j] :
            array[k] = left[i]
            i +=1
        else :
            array[k] = right[j]
            j +=1
        k+=1
    if i == len(left) :
        while j < len(right) :
            array[k] = right[j]
            j+=1
            k+=1
    elif j == len(right) :
        while i < len(left) :
            array[k] = left[i]
            i +=1
            k+=1
    return array

n = int(input())
num = []

for _ in range(n) :
    num.append(int(input()))

num= merge_sort(num)
for i in num :
    print(i)

👉🏻 merge sort를 이용해서 구현했는데 그래도 시간 초과가 떴다.

설명

👉🏻 놀랍게도 python3로 해서 안되는 문제가 pypy를 사용하면 풀리고 input으로 하면 안되는 문제가 sys.stdin.readline을 하면 풀린다.

느낀 점 ✏️

이상하고 요상한 코딩세계...😥

0개의 댓글

관련 채용 정보