[백준]C# 코딩 : 2588번(곱셈)

728x90
using System;

namespace backjoon
{
      class Program
      {
           static void Main(string[] args)
           {
                string a = Console.ReadLine();
                string b = Console.ReadLine();

                Console.WriteLine(int.Parse(a) * (int)Char.GetNumericValue(b[2]));
                Console.WriteLine(int.Parse(a) * (int)Char.GetNumericValue(b[1]));
                Console.WriteLine(int.Parse(a) * (int)Char.GetNumericValue(b[0]));
                Console.WriteLine(int.Parse(a) * int.Parse(b));
           }
      }
}

머리로 이해하기는 쉽지만 막상 코드로 짜려면 난해한 문제다.

문제를 풀기 위해서는 2가지 메서드

int.Parse()와 (int)Char.GetNumbericValue()메서드를 이해해야 한다.

 

int.Parse()는 string 타입의 변수를 int 타입으로 변환해 주는 메서드임을 기억하자.

 

그리고 (int)Char.GetNumbericValue() 메서드는 Char 형식의 배열 변수 []를 int로 변환하여 가져온다. 

즉, 3자리 숫자의 경우 1의 자리는 [2], 10의 자리는 [1], 100의 자리는 [0]을 반환하게 된다.

Console.WriteLine(int.Parse(a) * (int)Char.GetNumericValue(b[2])); 코드를 해석해보면

int타입으로 변환한 변수a와 int타입으로 변환한 변수 배열 중 1의자리를 곱한다는 뜻이다.

 

이렇게 int.Parse[a]에 b[2], b[1], b[0], int.Parse[b]를 각각 곱한 결과 값이 도출된다.

 

+ Console.ReadLine()과 Console.WriteLine() 작성 시

어셈블리에 using static System.Console; 을 추가해주면

Console은 생략하고 바로 ReadLine()과 WriteLine()만 작성해도 된다.

 

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

 

2588번: 곱셈

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

www.acmicpc.net

 

 

728x90