Coding Note

[백준] 2588번 - 곱셈 본문

JAVA/코딩 테스트

[백준] 2588번 - 곱셈

jinnkim 2022. 4. 13. 02:40

 

 

풀이해보면 입력 두번째 값을 순서대로 첫 번째 값에 곱하면 된다.

 


 

1. 문자열로 입력받아 charAt()로 하나씩 가져와 곱하는 방법

< 풀이 >

1. 첫 번째 값 a는 정수로 입력받고 두번째 값 b는 문자열로 입력받는다.

2. b값 문자열은 charAt() 함수를 사용해 자리값(index)을 참조한다.

더보기

ex) "apple"

     charAt(0) = a ,  charAt(1) = p,  charAt(2) = p,   charAt(3) = l,   charAt(4) = e     

 

3. 자리값에 아스키 코드 '0'을 뺀다.

Q. '0'을 빼는 이유는?

문자로 저장된 숫자가 아닌 정수 숫자 그대로의 값을 쓰기 위함!

즉, 아스키 코드 '0'은 48임.

 

 

import java.util.Scanner;

public class CodingT1 {

	public static void main(String[] args) {

		  Scanner sc = new Scanner(System.in); 
		
		  int a = sc.nextInt();
		  String b = sc.next();
		  
		  sc.close();
		  //0은 아스키코드 48
		  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. 수학적 풀이 - 나머지와 나눗셈 연산을 통해 각 자릿수를 구하여 곱하는 방법

 

< 풀이 >

1. 두 개의 입력값을 정수로 받는다.

2. 입력값을 각 자릿수 별로 가져온다.

 

일의 자리 5의 경우 385 % 10 을 해주면 나머지 값 5가 반환이 된다.

십의 자리 8은 385%100 을 해주면 나머지 값 85가 나오고 이걸 10으로 나누면, 즉 85/10 을 하면 8.5, 8이 반환 된다.

백의자리 3은 385/100 을 하면 3.85, 3이 된다.

 

 

public class CodingT2 {
	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));
		System.out.println(a*(b%100/10));
		System.out.println(a*(b/100));
		System.out.println(a*b);
	}

}

 

 

Comments