코딍코딍
코딩기록
코딍코딍
전체 방문자
오늘
어제
  • 분류 전체보기 (271)
    • 개발 (2)
    • Java (1)
    • 스프링 (28)
    • JPA (11)
    • Git (3)
    • 알고리즘 (160)
      • 백준 (132)
      • 프로그래머스 (8)
      • SWEA (20)
    • 토이 프로젝트 (14)
      • 간단한 Springboot CRUD (1)
      • 게시판 프로젝트 (13)
    • 알고리즘 개념정리 (8)
    • 오류 해결 (13)
    • 보류 (0)
    • AWS (5)
    • 트러블 슈팅 (0)
    • 회고 (3)
    • CS (4)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

최근 글

티스토리

hELLO · Designed By 정상우.
코딍코딍

코딩기록

백준 2751번 : 수 정렬하기2
알고리즘/백준

백준 2751번 : 수 정렬하기2

2021. 8. 18. 18:12

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

 

문제

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

입력

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

출력

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

 

 

문제 풀이 및 코드

 

처음 풀 땐 정렬알고리즘을 버블정렬만 알고있어 풀지 못하다가 6개월이 지나고 정렬을 배운 후 재도전했다.

문제 옆에 O(nlogn) 정렬알고리즘을 사용하면 풀린다하여서 처음에 퀵정렬을 이용해 제출하였지만 시간초과가 났다.

이유는 퀵정렬의 최악의 경우 빅오는 O(n^2)이기에 난 것 같다. 그래서 두 번째 방법으로는 최선의 경우와 최악의 경우 빅오가 둘 다 O(nlogn)인 병합정렬로 제출해서 맞았다. 

 

런타임 에러 (NZEC)

백준에는 C에서 void main을 사용하면 NZEC를 받을 수도 있다고 적혀 있다.

void 함수가 아무것도 리턴하지 않으니 code 0 자체도 출력하지 않아서라고 생각했다.

찾아보니까 프로그램이 단순하고, 코드의 마지막 줄에 도달하기 전에 종료되지 않거나, 코드에 오류가 없는 경우 void main()을 사용할 수 있다고 한다. 그러나 exit() 메서드를 사용하여 프로그램을 종료하기 위해서는 정수 값을 반환해야 한다고.

​

ANSI 표준은 'void main'을 잘못된 것으로 간주한다고 하니 다음부터는 int main을 사용해야겠다.

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

1439번 : 뒤집기  (0) 2022.06.26
10610번 : 30  (1) 2022.06.22
1789번 : 수들의 합  (0) 2022.06.22
10162번 : 전자레인지  (0) 2022.06.22
5585번 : 거스름돈  (0) 2022.06.22
    '알고리즘/백준' 카테고리의 다른 글
    • 10610번 : 30
    • 1789번 : 수들의 합
    • 10162번 : 전자레인지
    • 5585번 : 거스름돈
    코딍코딍
    코딍코딍
    ㅎ2

    티스토리툴바