[★1][백준2588번]곱셈 (JAVA)
카테고리: BKJN
태그: Algorithm Java Coding Test
[★1][백준2588번]곱셈 (JAVA)
2588번 문제 ☞ https://www.acmicpc.net/problem/2588
난이도 ☞ [★1]
나머지
- 문제
- (세 자리 수) * (세 자리 수)는 다음과 같은 과정으로 이루어진다.(문제출처 사이트참고)
(1)과(2)위치에 들어갈 세 자리 자연수가 주어질 때 (3 ), (4), (5), (6)위치에 들어갈 값을 구하시오. - 첫째 줄에 (1)의 위치에 들어갈 세 자리 자연수가, 둘째 줄에 (2)의 위치에 들어갈 세자리 자연수가 주어진다.
-
첫째 줄부터 넷째 줄까지 차례대로 (3), (4), (5), (6)에 들어갈 값을 출력한다.
예제입력 예제출력 472
3852360
3776
1416
181720
- (세 자리 수) * (세 자리 수)는 다음과 같은 과정으로 이루어진다.(문제출처 사이트참고)
내가 푼 풀이
[ 풀이 1 ]
메모리 :
14144KB
시간 :124ms
Scanner
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int A = sc.nextInt(); // 첫번째 숫자는 int형으로 받음
String B = sc.next(); // 두번째 숫자는 String형으로 ㅂ다음
sc.close();
// charAt()으로 하나씩 꺼내어 불러옴.
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));
}
}
풀이 1번은 가장 기본적인 Scanner방식으로 구현하였고, 두번째 숫자를 문자열로 받아 charAt()으로 하나씩 꺼내어서 출력하는 방식으로 구현했습니다. JAVA API 문서에 있는 charAt() 대한 설명에 참고하여 설명하자면 charAt()은 문자열의 인덱스 위치에 있는 문자(Character)값을 반환한다고 설명하고 있다. ASCII를 참고하면 된다.
[ 풀이 2 ]
메모리 :
17692KB
시간 :204ms
Scanner
public class Multiply2{
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);
}
}
풀이 2번은 Scanner를 사용하였고, 수학적으로 접근하여 구현하도록 하였다.
댓글 남기기