문 제
N개의 수가 주어졌을 때, 이를 오름차순으로 정렬하는 프로그램을 작성하시오.
입 력
첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수가 주어진다. 이 수는 절댓값이 1,000,000보다 작거나 같은 정수이다. 수는 중복되지 않는다.
5
5
4
3
2
1
출 력
첫째 줄부터 N개의 줄에 오름차순으로 정렬한 결과를 한 줄에 하나씩 출력한다.
1
2
3
4
5
코 드
N이 100만이라 ‘시간 초과’ 안나게 하는 문제.
StringBuilder 를 사용하여 문자열 변경이 잦은 부분 보완.
using System;
using static System.Console;
using System.Text;
namespace Algorithm
{
class Program
{
static void Main(string[] args)
{
int N = int.Parse(ReadLine());
StringBuilder builder = new StringBuilder();
int[] arrayNum = new int[N];
for (int i = 0; i < N; i++)
arrayNum[i] = int.Parse(ReadLine());
Array.Sort(arrayNum);
for (int i = 0; i < N; i++)
builder.Append(arrayNum[i] + "\n");
WriteLine(builder);
}
}
}
비교코드 - 1
공 부
StringBuilder
- System.Text 네임스페이스 객체
- 선언 방법
// 용량 10으로 설정
StringBuildr stringBuilder = new StringBuilder(10);
// 용량 10, 최대 용량 50
StringBuildr stringBuilder = new StringBuilder(10, 50);
// 문자열을 "Test"로 초기화, 최대 용량 50
StringBuildr stringBuilder = new StringBuilder("Test", 50);
- 메서드 : Append(), Insert(), Remove(), Replace()
- 사용처 : 추가되는 문자열 개수가 ‘동적’인 경우! / 문자열에 대해 변경이 잦을 경우