Unity 개발일지

[C#] 백준 문제 1000번 A+B 본문

C#

[C#] 백준 문제 1000번 A+B

아머르 2024. 4. 19. 18:18

 

문제 자체는 A와 B를 입력받고 A+B를 출력하는 것으로 간단하다.

하지만 A와 B를 한번에 입력받아야 한다는 조건이 있다.

 

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

C#에서 입력을 받을 수 있는 메서드는 Console.ReadLine(); 이 있다.

하지만 Console.ReadLine(); 의 출력값은 문자열(또는 null)이다.

그러므로 우리가 숫자를 입력해도 문자열로 반환되며 이를 숫자로 변형시켜줘야한다.

 

2개의 숫자를 Console.ReadLine();에 입력했다면 이제 분리해야된다.

C#에서 문자열을 분리하는 방법으로는 String.Split 메서드가 있다.

Split 메서드는 특정한 구분자 값으로 문자열 값으로 구분해준다.

예를들면 Split(' '); 을 해주면 띄어쓰기로 값을 구분해준다.

' ' 를 안해주면 기본적으로 띄어쓰기로 구분해준다.

 

Split에 대한 자세한 내용은 해당 문서 참고

String.Split 메서드 (System) | Microsoft Learn

 

Console.WriteLine(int.Parse(s[0]) + int.Parse(s[1]));

마지막으로 출력을 해줄 수 있는 Console.WriteLine(); 메서드에 이 문자열을 숫자로 변환해서 넣어주면 되겠다.

문자열을 숫자로 변환하는 방법으로는 Int(정수)의 기능 중 하나인 Int32.Parse 메서드가 있다.

참고로 Console.WriteLine(value);의 괄호 안에는 value가 들어가고 이 값이 출력되는데

value에는 문자열, 숫자, 변수 연산식 등 어떤 값이든 사용할 수 있다.

 

Parse에 대한 자세한 내용은 해당 문서 참고

Int32.Parse 메서드 (System) | Microsoft Learn

 

1000번 문제 제출 답안

 

 

추가로 문제 1008번의 나눗셈의 경우는 상대오차의 값도 신경을 써주어야한다.

            문제 11382번의 경우에는 1 ≤ A, B, C ≤ 10^12 라는 조건이 나오는데

            자료형 int의 범위를 넘어가기 때문에 long을 써줘야한다.(장하다 꼬마정민이)

int와 float로 나누었다면 오차범위가 10의-9제곱보다 클 것이고 double부터 10의-9제곱 이상이 된다.

 

출처: 부동 소수점 숫자 형식 - C# 참조 - C# | Microsoft Learn

 

 

출처: 정수 숫자 형식 - C# 참조 - C# | Microsoft Learn

반응형