24.02.16 TIL - 알고리즘 : 백준, 2코딩은 체육과목 입니다 (25314번) | StringBuilder : 문자열 생성 및 수정

JJwoo·2024년 2월 17일

알고리즘

목록 보기
12/18

1. 풀이와 흐름

namespace ConsoleApp2
{
    internal class Program
    {
        static void Main(string[] args)
        {
            int N = int.Parse(Console.ReadLine());

            for (int i = 0; i < N/4; i++)
            {
                Console.Write("long ");
            }
            Console.Write("int");
        }
    }
}
  • Console.ReadLine()을 통해 입력을 받고, int.Parse로 정수형으로 변환하여 N 변수에 저장

  • N이 4의 배수이므로 N / 4을 계산.

  • 계산한 결과에서 1을 빼서 int에 붙여야 할 long의 개수를 결정

  • int 앞에 필요한 만큼의 long (공백에 유의) 을 붙여 문자열을 완성


2. 다른 풀이 : StringBuilder 사용

StringBuilder 클래스

  • 문자열을 효율적으로 생성하고 수정할 수 있는 기능을 제공
  • 반복적인 문자열 결합 로직에 있어서 성능 상 효율적

예시)

using System;
using System.Text;

class Program {
    static void Main() {
        int N = int.Parse(Console.ReadLine());
        StringBuilder sb = new StringBuilder();

        for (int i = 0; i < N / 4; i++) {
            sb.Append("long ");
        }
        sb.Append("int");

        Console.WriteLine(sb.ToString());
    }
}
  • 사용자로부터 입력을 받아 N 변수에 저장

  • StringBuilder 객체 sb를 생성

  • for 반복문을 사용하여 N / 4 만큼 long 문자열을 sb에 추가

  • int 문자열을 sb에 추가

  • sb.ToString()을 호출하여 StringBuilder 객체에 저장된 문자열을 출력

<정리>
N이 매우 큰 경우, 위 방식은 + 연산자를 사용하는 것보다 훨씬 효율적이다.

profile
개발 모코코

0개의 댓글