[★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
를 사용하였고, 수학적으로 접근하여 구현하도록 하였다.
댓글 남기기