[ 백준 2588번 ] 곱셈
알고리즘/백준

[ 백준 2588번 ] 곱셈

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

 

2588번: 곱셈

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

www.acmicpc.net

 

 

자연수 2개를 입력받아서 자리수를 표시하고 마지막에 최종 결과값을 출력하는 문제


import java.util.*;

public class Multiple {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int a, b;
        a = scanner.nextInt();
        b = scanner.nextInt();

        char[] charArray = String.valueOf(b).toCharArray();
        for(int i = charArray.length-1; i > -1; i--){
            char val = charArray[i];
            System.out.println(a * (val - '0'));
        }
        System.out.println(a*b);
    }
}

내가 푼 방법은.. 배열로 담아서 반복문을 돌리는 작업이였다.

 


다른 분들이 푼 방법을 찾아보니 여러 방법들이 있는 것 같다. 

 

<다른 방법 1>

import java.util.Scanner;
 
public class Main {
 
	public static void main(String[] args) {
		Scanner in = new Scanner(System.in);
 
		int A = in.nextInt();
		String B = in.next();
        
		in.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 in = new Scanner(System.in);
 
		int A = in.nextInt();
		int B = in.nextInt();
        
		in.close();
 
		System.out.println(A*(B%10));
		System.out.println(A*(B%100/10));
		System.out.println(A*(B/100));
		System.out.println(A*B);
	}
 
}

출처: https://st-lab.tistory.com/20

 

[백준] 2588번 : 곱셈 - JAVA [자바]

https://www.acmicpc.net/problem/2588 2588번: 곱셈 첫째 줄부터 넷째 줄까지 차례대로 (3), (4), (5), (6)에 들어갈 값을 출력한다. www.acmicpc.net 문제 매우 간단한 문제다! 3개의 풀이 방법을 제시한다. 이..

st-lab.tistory.com


ps. 어렵지 않게 생각했는데, 다양한 방법으론 생각해보지 못한 것 같다.

     다음엔 어떤 방법이 있을지 좀 더 생각해보는 자세가 필요할 것 같다.