[★1][백준2588번]곱셈 (JAVA)

Date:     Updated:

카테고리:

태그:

[★1][백준2588번]곱셈 (JAVA)

2588번 문제 ☞ https://www.acmicpc.net/problem/2588

난이도 ☞ [★1]

나머지

  • 문제
    • (세 자리 수) * (세 자리 수)는 다음과 같은 과정으로 이루어진다.(문제출처 사이트참고)
      (1)과(2)위치에 들어갈 세 자리 자연수가 주어질 때 (3 ), (4), (5), (6)위치에 들어갈 값을 구하시오.
    • 첫째 줄에 (1)의 위치에 들어갈 세 자리 자연수가, 둘째 줄에 (2)의 위치에 들어갈 세자리 자연수가 주어진다.
    • 첫째 줄부터 넷째 줄까지 차례대로 (3), (4), (5), (6)에 들어갈 값을 출력한다.

      예제입력 예제출력
      472
      385
      2360
      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를 사용하였고, 수학적으로 접근하여 구현하도록 하였다.

BKJN 카테고리 내 다른 글 보러가기

댓글 남기기