using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Baekjoon
{
class Program
{
static void Main(string[] args)
{
int n = int.Parse(Console.ReadLine());
StringBuilder allNum = new StringBuilder();
for (int i=1; i<=n; i++)
{
allNum.AppendLine(i.ToString());
}
Console.WriteLine(allNum);
}
}
}
Console.WriteLine
은 (메모리상 변수의 조작에 비하면) 시간이 많이 걸리는 작업으로 이를 반복적으로 여러번 호출하면 시간이 오래 걸리게 되고, 시간 초과가 된다.
Console.WriteLine
을 최소한으로 호출하기 위해 StringBuilder
사용
StringBuilder
String
- 변경할 수 없는 형식
- 변경을 하면 변경된 문자열을 위한 새로운 String을 만들어 냄
- 반복적으로 계속 String을 변경하면 성능 저하가 일어날 수 있다.
StringBuilder
- 변경 가능한 문자열 Class
- 메서드
.Append
.AppendLine
.Insert
.Replace
.Length
.ToString()
IndexOf()
나 StrartsWith()
같은 검색 메서드가 부족해 필요하다면 다시 String으로 변환해 사용해야 한다.