[백준] C# : N 찍기 (2741번)

ssu_hyun·2022년 7월 9일
0

Data Structure & Algorithm

목록 보기
17/67
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)
        {
            // 시간 초과
            //string s = Console.ReadLine();
            //int n = int.Parse(s);
            //for (int i = 1; i <= n; i++)
            //{
            //    Console.WriteLine(i);
            //}

            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으로 변환해 사용해야 한다.

0개의 댓글