[백준_InAndOut] 2588번 문제

Kwon·2023년 10월 18일

백준

목록 보기
2/22

사진 출처 : https://www.acmicpc.net/

백준 2588번 문제

풀이

이번 문제는 조금 고민했던 것 같다. 간단해 보이지만 두 수의 두 자리 수 이상인 숫자 곱셈 과정을 풀어내는게 생소했던 것 같다.

내 코드를 보자면

int num1 = sc.nextInt();
String num2 = sc.next();
String[] arr;
arr = num2.split("");
for (int i = num2.length() - 1; i >= 0; i--) {
    System.out.println(Integer.parseInt(arr[i])*num1);
}
System.out.println(Integer.parseInt(num2) * num1);

❓ num1은 int형인데 num2는 왜 String형으로 선언해줬을까?

🧐한 글자 씩 구분지어 정수형으로 전환 후 곱셈을 하려는 전략을 선택했다.

한 글자 씩 구분 짓기 위해 split() 사용

예를 들어 472 X 312 해주면 3, 1, 2 로 나뉘어 각 숫자가 472 곱하는 과정을 볼 수 있기 하기 위함이다.

첫 숫자 부터 시작을 위해 for문 시작 부분 i = num2.length() - 1 선언

한 글자 씩 따온 숫자 정수형 변환, Integer.parseInt() 사용

472 란 숫자는 312의 숫자에 의해 곱셈이 되고 312에서 2부터 계산이 되어야 하기에 시작 부분을 num2.length()로 지정해주었다.

그리고 계산 할 때 정수형으로 변환해주면 정확한 과정이 생성될 것이다.

profile
📲 @bu_kwon_2 / 💻 dnu05043.log / ⌨ Back-end / 🦁 LikeLion

0개의 댓글