반응형
백준 단계별로 풀어보기 1단계 입출력과 사칙연산 11번 문제
문제의 핵심
1. 문자열에서 특정한 위치의 글자를 가져올 수 있는가?
이번 문제는 단순하게 "C#의 문법을 아는가?"를 넘어서
"생각을 좀 더 넓고 깊게 할 수 있는가?" 를 묻고 있다.
사실은 그러기엔 너무 쉬운 문제이긴 하지만,
2단계부터는 단순히 문법만으로는 풀 수 없을 것이다를
알리는 시작과도 같은 문제이다.
푸는 방법은 다양하게 존재하지만,
1단계를 넘어서는 문법은 최대한 사용하지 않고 풀었다.
우리가 알고 있는 곱셈을 하는 방식대로 계산할 때
결과값들을 차례로 출력하는 문제이다.
두번째로 입력된 숫자의 1의자리, 10의자리, 100의 자리 숫자를 따로 가져와서
첫번째로 입력된 숫자에 곱하면 된다.
입력을 받은 문자열은 배열형태처럼 저장되기 때문에
[숫자] 의 형태로 해당위치의 글자를 가져올 수 있다.
또한, string은 int.Parse를 사용해서 int로 변경할 수 있었지만,
딱 한글자만 존재하는 Char 형식인 경우에는
(int)Char.GetNumericValue(b[2])
다음과 같은 방식으로 int형태로 바꿔줄 수 있다.
int.Parse를 암기하는 것처럼, 그냥 외우면 된다..
1의자리 숫자는 b[2]
10의자리 숫자는 b[1]
100의자리 숫자는 b[0]
이므로 차례로 가져와서 곱하면 된다.
정답 코드
using System;
using static System.Console;
namespace 사칙연산11번
{
class 곱셈
{
static void Main(string[] args)
{
string a = ReadLine();
string b = ReadLine();
WriteLine(int.Parse(a)* (int)Char.GetNumericValue(b[2]));
WriteLine(int.Parse(a) * (int)Char.GetNumericValue(b[1]));
WriteLine(int.Parse(a) * (int)Char.GetNumericValue(b[0]));
WriteLine(int.Parse(a) * int.Parse(b));
}
}
}
반응형
'C# > C# : Baekjoon' 카테고리의 다른 글
[백준] C# : 시험 성적 (9498번) (0) | 2021.07.22 |
---|---|
[백준] C# : 두 수 비교하기 (1330번) (2) | 2021.07.22 |
[백준] C# : 나머지 (10430번) (0) | 2021.07.22 |
[백준] C# : 사칙연산 (10869번) (0) | 2021.07.22 |
[백준] C# : A/B (1008번) (0) | 2021.07.21 |
댓글