728x90
문제링크
https://www.acmicpc.net/problem/1225
1225번: 이상한 곱셈
첫째 줄에 A와 B가 주어진다. 주어지는 두 수는 모두 10,000자리를 넘지 않는 음이 아닌 정수이다. 수가 0인 경우에는 0만 주어지며, 그 외의 경우 수는 0으로 시작하지 않는다.
www.acmicpc.net
문제
A×B를 계산하다 지겨워진 형택이는 A×B를 새로운 방법으로 정의하려고 한다.
A에서 한 자리를 뽑고 × B에서 임의로 한 자리를 뽑아 곱한다.
의 가능한 모든 조합 (A가 n자리, B가 m자리 수라면 총 가능한 조합은 n×m개)을 더한 수로 정의하려고 한다.
예를 들어 121×34는
1×3 + 1×4 + 2×3 + 2×4 + 1×3 + 1×4 = 28
이 된다. 이러한 형택이의 곱셈 결과를 구하는 프로그램을 작성하시오.
조건
시간제한 : 2초
메모리 제한 : 256 MB
입력
첫째 줄에 A와 B가 주어진다. 주어지는 두 수는 모두 10,000자리를 넘지 않는 음이 아닌 정수이다. 수가 0인 경우에는 0만 주어지며, 그 외의 경우 수는 0으로 시작하지 않는다.
출력
첫째 줄에 형택이의 곱셈 결과를 출력한다.
문제풀이
이번 문제의 경우 두 수를 A랑 B라 칭하면 A갯수만큼 순환하고, B갯수만큼 순환하면서
한자리씩 값을 곱하여 sum에 누적하였습니다.
문자열을 정수로 변환할 수 있으면 간단히 해결될 문제였습니다.
C# 코드
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
static void Main(string[] args)
{
StreamWriter writer = new StreamWriter(Console.OpenStandardOutput());
StreamReader reader = new StreamReader(Console.OpenStandardInput());
string[] input = reader.ReadLine().Split();
string a = input[0];
string b = input[1];
long sum = 0;
for (int i = 0; i < a.Length; i++)
{
// a와 b를 한자리씩 순환하면 sum에 다 더해주고 있습니다.
for (int j = 0; j < b.Length; j++)
sum += int.Parse(a[i].ToString()) * int.Parse(b[j].ToString());
}
writer.WriteLine(sum);
writer.Close();
reader.Close();
}
|
cs |
728x90
'[C#] 백준 (알고리즘) > 브론즈 문제' 카테고리의 다른 글
[백준 - C#] 10039 평균 점수 (0) | 2022.07.15 |
---|---|
[백준 - C#] 1924 2007년 (0) | 2022.07.13 |
[백준 - C#] 1145 적어도 대부분의 배수 (0) | 2022.07.12 |
[백준 - C#] 1233 주사위 (0) | 2022.07.12 |
[백준 - C#] 1284 집 주소 (0) | 2022.07.11 |