본문 바로가기
C#/C# : Baekjoon

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

by TODAYCODE 2021. 7. 22.
반응형

백준 단계별로 풀어보기 3단계 for문 6번 문제

 

2742번: 기찍 N

자연수 N이 주어졌을 때, N부터 1까지 한 줄에 하나씩 출력하는 프로그램을 작성하시오.

www.acmicpc.net

 

문제의 핵심

1. 스트링빌더와 for문을 적절히 사용할 수 있는가?

 


내 기억이 맞다면, 이번 문제도 스트링빌더를 쓰지 않으면 시간초과가 발생한다.

 

이전 문제였던 1부터 n까지의 숫자를 차례로 찍는 것을 정반대로

n부터 1까지 작아지는 숫자를 출력하면 된다.

 

사실 색다른게 전혀 없는 문제이고

for문의 식들만 적절하게 만져주면 되는 기본적인 문제이다.

 

아마 이후로도 문제를 풀때 스트링빌더를 필수적으로 사용해야할 것 같다.

 

백준 문제 자체가 C#만을 위한 문제가 아니라

다양한 언어로 푸는 문제들이기 때문에

C#의 입장에서는 어쩔 수 없이 스트링빌더를 사용해야하는 걸지도...?

아니면 스트링빌더가 C#에서 그냥 굉장히 중요한 것이거나.

 

 

아무튼 정답 코드는 다음과 같다.

using System;
// 스트링빌더를 사용하기 위함.
using System.Text;

namespace for문6
{
    class Program
    {
        static void Main(string[] args)
        {
        	// 입력을 받아서 int형태로 변수 n에 저장
            int n = int.Parse(Console.ReadLine());
            // 스트링빌더를 생성
            StringBuilder answer = new StringBuilder();
            
            // i가 n부터 시작해서 1이 될때까지 반복되는 for문 생성
            for (int i = n; i > 0; i--)
            {
            	// i를 문자열로 바꿔서 스트링빌더에 넣어버림.
                answer.AppendLine(i.ToString());
            }
            Console.WriteLine(answer);
        }
    }
}

 

반응형

'C# > C# : Baekjoon' 카테고리의 다른 글

[백준] C# : A+B - 8 (11022번)  (0) 2021.07.23
[백준] C# : A+B - 7 (11021번)  (0) 2021.07.22
[백준] C# : 빠른 A+B (15552번)  (0) 2021.07.22
[백준] C# : 빠른 A+B (15552번)  (0) 2021.07.22
[백준] C# : 합 (8393번)  (0) 2021.07.22

댓글