티스토리 뷰

 

이번 문제는 프로그래밍을 처음 배웠을 당시 했던 트리 그리기 문제였다.

 

옛날 기억이 나며 이중 for문으로 작성해보았다.

 

using System;

public class Example
{
    public static void Main()
    {
        String[] s;

        Console.Clear();
        s = Console.ReadLine().Split(' ');

        int n = Int32.Parse(s[0]);        
        string line = string.Empty;
        
        for(int k = 0; k < n; k++){
            for(int j = 0; j <= k; j++)
                line += "*";
            line += "\n";
        }
        
        Console.WriteLine(line);        
    }
}

 

상상했던 결과 값이지만 뭔가 부족해보였다.

분명 기억하지 못하는 부분에서 더 효율적이고 깔끔한 코드가 있을 것 같아서 다른 분들의 코드를 확인했다.

 

using System;
using System.Text;

public class Example
{
    public static void Main()
    {
        String[] s;

        Console.Clear();
        s = Console.ReadLine().Split(' ');

        int n = Int32.Parse(s[0]);

        StringBuilder str = new StringBuilder();

        for(int i = 1; i <= n; i++)
            str.Append(new string('*', i)).Append('\n');

        Console.WriteLine(str.ToString());      
    }
}

 

위 답안이 가장 좋아 보였는데 StringBuilder의 Append를 사용하신 답안이었다.

 

Append는 +연산자와 달리 새로운 메모리 할당을 하지 않아 공간적 여유도 챙기는 부분이기에 훨씬 좋은 코드라 생각했다.

최근에 올라온 글
최근에 달린 댓글
«   2025/06   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
글 보관함