본문 바로가기
IT/알고리즘

1일 N알고리즘 - #37

by Sungjun_ 2020. 6. 6.

문제

https://www.acmicpc.net/problem/2750

 

2750번: 수 정렬하기

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

www.acmicpc.net

문제는 위 사이트를 참고해주세요.

 


풀이

1번 코드

N = int(input())
num = []
for _ in range(N):
    num.append(int(input()))
num.sort()
for x in num:
    print(x)

 

처음에는 파이썬에 있는 sort를 사용했습니다.

하지만 이러면 문제푸는 이유가 없는거 같아서 다시 풀었습니다.

 

2번 코드

def inputNum(N):
    a = []
    for _ in range(N):
        a.append(int(input()))
    return a
def main():
    N = int(input())
    num = inputNum(N)
    for i in range(len(num)):
        minNum = num[i]
        for j in range(i, len(num)):
            if minNum > num[j]:
                x = num.index(minNum)
                minNum = num[j]
                num[x], num[j] = num[j], num[x]
    for i in range(len(num)):
        print(num[i])
main()

 

2번 코드는 숫자 하나하나를 비교해서

큰 숫자와 작은 숫자의 자리를 바꿔줍니다.

 

3번 코드

N = int(input())
num = []
for _ in range(N):
    x = int(input())
    num.append(x)
for i in range(len(num)):
    for j in range(len(num)):
        if num[i] < num[j]:
            num[i], num[j] = num[j], num[i]
for i in num:
    print(i)

 

3번 코드는 2번코드를 다시 짜봤습니다.

 


결과

결과 화면

 

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

1일 N알고리즘 - #39  (0) 2020.06.09
1일 N알고리즘 - #38  (0) 2020.06.08
1일 N알고리즘 - #36  (0) 2020.06.06
1일 N알고리즘 - #35  (0) 2020.06.02
1일 N알고리즘 - #34  (0) 2020.06.01

댓글