Living in my own world. Else If..? 자세히보기

백준 - 단계별로 풀어보기/C#

[백준] 1000번 A+B 풀이 (C#) - Elif's Diary

Elif_918 2026. 3. 1. 15:23

안녕하세요! 이번엔 1000번을 풀어 봤습니다.
1000번은 입력값 나누기, 자료형만 이해한다면 매우 간단한 문제입니다.

// https://www.acmicpc.net/problem/1000
// 백준 단계별로 풀어보기 - 입출력과 사칙연산
// 1000 A+B

// 시간 제한 : 2초
// 메모리 제한 : 128 MB
// 문제 : 두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오.
// 입력 : 첫째 줄에 A와 B가 주어진다. (0 < A, B < 10)
// 출력 : 첫째 줄에 A+B를 출력한다.

using System;
namespace Baekjoon {
    class BaekjoonSBS {
        static void Main(string[] args) {
            string[] Num = Console.ReadLine().Split();
            // 입력값을 받아서 공백 기준으로 나눈 후 Num이라는 리스트에 저장
            Console.WriteLine(int.Parse(Num[0]) + int.Parse(Num[1]));
            // 리스트에 저장된 값을 정수형으로 바꾸어 덧셈
        }
    }
}
// 풀이 - https://elifsblog.tistory.com/2

 

일단 순서를 알려드리자면,
Main함수 호출 후, 입력값을 저장 후,
int로 변환해서 덧셈 후 출력하면 됩니다.

그거밖에 안 하는 코드가 왜 이렇게 복잡하냐!! 라고 하신다면..
입력값이 한 줄로 오고, 자료형이 다르기 때문입니다.

1000번 A+B 문제 중 예제 입/출력

위 사진을 보시면, 입력값이 "1 2" 형태로 한 줄에 띄어쓰기만 되어있습니다.
만약 줄을 바꿔서 입력값을 주었다면 이런 형태로 변수로 바꾸면 되겠지만,

int A = Console.ReadLine();
int B = Console.ReadLine();

이게 아니기 때문에, 일단 입력값을 받은 후에 나눠주어야 합니다.
숫자 사이에 띄어쓰기(공백)이 있기 때문에, .split() 함수를 사용할 겁니다.
.Split()함수는 ()안에 있는 문자 기준으로 문자열을 나눕니다.

예를 들어 (",")라면 쉼표 기준, ()이라면 공백 기준으로 나눠집니다.
그러면 Split만 하고 A+B 하면 되냐?
그건 또 아닙니다. 

현재 A와 B는 모두 string, 문자 형태이기 때문에, 덧셈같은 연산이 불가능합니다.
우리라도 무런 얘기도 없이 미지수 x+y의 값을 구해라! 라고 물어보면..
할말이 없겠죠...

그래서 우린 A와 B를 int.Parse라는 함수를 이용해 int, 정수 형태로 변형해줘야 합니다.
그렇다면...

int Num = int.Parse(Console.ReadLine().Split);


이렇게 하면 되는거군요! 와!
라고 하신다면... 그것도 아닙니다.

Console.ReadLine()은 입력값을 string으로 반환하고, .Split()은 string[]으로 반환하는데,
int.Parse()는 단일 string만 받습니다.
따라서 미리

string[] Num = Console.ReadLine().Split();


이런 식으로 저장한 이후에 밑의 코드처럼 정수형으로 변환해주거나, 출력 시 즉석으로 int.Parse로 변환해 출력할수 있습니다.

// 미리 변수로 정수형 변환 해주는 방법
int A = int.Parse(Num[0])
int B = int.Parse(Num[1])

// 출력 시 정수로 변환 해주는 방법
Console.WriteLine(int.Parse(Num[0]) + int.Parse(Num[1]));

저처럼 출력란에서 정수형으로 변환해 주어야 합니다.
그 이후 WriteLine()함수로 A + B를 출력하면 됩니다.

긴 글 읽어주셔서 감사합니다.