모름

https://www.acmicpc.net/problem/2588

 

2588번: 곱셈

첫째 줄부터 넷째 줄까지 차례대로 (3), (4), (5), (6)에 들어갈 값을 출력한다.

www.acmicpc.net

백준 단계별 문제풀이 [1단계] 마지막 문제다.

 


곱셈 성공

시간 제한메모리 제한제출정답맞은 사람정답 비율

1 초 128 MB 15680 9726 8976 64.469%

문제

(세 자리 수) × (세 자리 수)는 다음과 같은 과정을 통하여 이루어진다.

(1)과 (2)위치에 들어갈 세 자리 자연수가 주어질 때 (3), (4), (5), (6)위치에 들어갈 값을 구하는 프로그램을 작성하시오.

입력

첫째 줄에 (1)의 위치에 들어갈 세 자리 자연수가, 둘째 줄에 (2)의 위치에 들어갈 세자리 자연수가 주어진다.

출력

첫째 줄부터 넷째 줄까지 차례대로 (3), (4), (5), (6)에 들어갈 값을 출력한다.


 

코드는 아래와 같다.

using System;

public class Program {

    public static void Main()
    {
        string a1 = Console.ReadLine(); // 1번째 줄
        string a2 = Console.ReadLine(); // 2번째 줄
        char[] a3 = a2.ToCharArray();
    
        int num1 = int.Parse(a1);
        int[] num2 = new int[a3.Length];

        for (int i = 0; i < a3.Length; i++)
        {
            num2[i] = int.Parse(a3[i].ToString());
        }

        Console.WriteLine(num1 * num2[2]); //3번째 줄
        Console.WriteLine(num1 * num2[1]); //4번째 줄
        Console.WriteLine(num1 * num2[0]); //5번째 줄
        Console.WriteLine(num1 * num2[2]
                          + num1 * num2[1] * 10
                          + num1 * num2[0] * 100); //6번째 줄
    }
}

대출 설명하자면, ReadLine으로 세자리 수를 입력받는다. 그리고 n의 자리를 구해야하는 a2는 ToCharArray로 배열로 따로따로 저장한다. 그럼 char[] a3에는 [숫자,숫자,숫자]가 데이터로 저장된다. 이걸 이용해서 곱셈을 하면 된다.

 

보기좋게 하기위해서 int num1, int[] num2로 값을 넣어준다. 배열값은 for문을 이용해 숫자값을 넣어준다. 그리고 WriteLine()으로 계산을 하면되는데, 주의할점은 배열값을 역순으로 넣어줘야한다. 처음에 [0],[1],[2]로 넣어줬다가 왜 틀리지 싶었다. 

 

그리고 마지막 6번째 줄에는 모두 더한값을 내는데 각각 곱하기10, 곱하기100을 해줌으로서 자리값을 원상복귀한 상태로 계산해야한다.

 

예제 입력과 출력과 똑같이 콘솔에서도 출력된다.