[Java] 백준2588 곱셈

728x90

문제

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

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

 

입력

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

 

출력

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


 

요구 조건

  • 세자리 자연수 2개가 주어진다
    • 나눗셈 연산자?
    • 문자열로 입력받아 , chatAt() 메서드 쓰는 것(3) , (4) , (5) ,(6) 에 들어갈 곱셈 기법을 적는 것이다.
      • (3)는 (1)번 전체랑, (2) 번의 세번째 자리수랑 곱한 것
      • (4)는 (1)번 전체랑, (2) 번의 두번째 자리수를 곱한 것
      • (5) 는 (1)번 전체랑, (2)번의 첫번째 자리수를 곱한 것
      → 결국 (2) 의 자릿수를 찾는 로직을 알아야함.

위 내용을 알면 도움이 될 것이다.

 

1번 방법 ( chartAt() 아스키코드 다시 공부하기..) 

import java.util.Scanner;

public class Main {
	public static void main(String[] args) {

		Scanner sc = new Scanner(System.in);

		int A = sc.nextInt();
		String B = sc.next();

		sc.close();
		
		System.out.println(A * (B.charAt(2) - '0') );
		System.out.println(A * (B.charAt(1) - '0') );
		System.out.println(A * (B.charAt(0) - '0') );
		System.out.println(A * Integer.parseInt(B));
	}

}

 

2번 방법 (저는 이 방법으로 풀었습니다)

import java.util.Scanner;

public class Main {
	public static void main(String[] args) {

		Scanner sc = new Scanner(System.in);

		int A = sc.nextInt();
		int B = sc.nextInt();

		sc.close();
		System.out.println(A * (B%10) ); //5
		System.out.println(A * (B%100/10)); //8
		System.out.println(A * (B/100));
		System.out.println(A * B);

	}

}

 

느낀점 

charAt() 함수에 관련해서 조금 더 공부를 해야겠다는 필요성을 느꼈고, 아스키 코드 또한 조금 관심을 가지고 알아야 할 

필요성을 느꼈습니다. 

728x90