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

[백준] C# : A+B - 5 (10952번)

by TODAYCODE 2021. 7. 23.
반응형

백준 단계별로 풀어보기 4단계 while문 1번문제

 

10952번: A+B - 5

두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오.

www.acmicpc.net

 

문제의 핵심

1. while문을 사용할 줄 아는가?

2. 점프문을 사용할 줄 아는가?

 


 

while문은 작은 실수한번으로도 무한루프에 빠지기 쉽지만,

잘만 다뤄준다면 굉장히 강력한 도구이다.

 

while문에서는 탈출하기 위한 장치를 무조건 세팅해야한다.

 

보통 bool 변수를 활용하곤 하는데

이번 문제의 경우에는 점프문을 사용했다.

 

c#에서 점프문은 5가지가 존재하는데,

그 중 break문을 통해서 while문을 손쉽게 탈출 할 수 있다.

 

if문을 사용해서 변수 2개에 모두 0이 입력되었을 때,

break로 while문을 빠져나가도록 작성했다.

 

 

 

그리고...

한번 입력하고 한번 출력하고 이걸 반복시켜도 정답처리를 받을 수 있는데,

나는 입력이 모두 끝난 뒤에 한번에 출력하기 위해서 스트링빌더를 사용했다.

 

전자처럼 풀고 싶다면,

그냥 입력할 때마다 합을 int로 저장해서 출력해버리면 된다.

 

 

 

정답 코드

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

namespace While1
{
    class Program
    {
        static void Main(string[] args)
        {
        	// 스트링빌더를 생성해준다.
            StringBuilder answer = new StringBuilder();
            
            // 항상 돌아가는 while문을 만든다.
            while (true)
            {
            	// 입력을 받는다.
                string[] s = Console.ReadLine().Split();
                int a = int.Parse(s[0]);
                int b = int.Parse(s[1]);
                
                // 만약 a와 b가 모두 0일 경우 break를 통해서 while문을 빠져나간다.
                if (a == 0 && b == 0)
                {
                    break;
                }
                
                // 코드가 여기까지 진행됐다면, a와 b가 전부 0은 아닌 상태이다.
                // a + b 계산 값을 스트링빌더인 answer에 저장한다.
                answer.AppendLine((a + b).ToString());
            }
            // a와 b가 모두 0이었다면 while문에서 빠져나와 여기로 오게 된다.
            // 입력된 계산 값을 모두 출력한다.
            Console.WriteLine(answer);
        }
    }
}
반응형

댓글