코딩테스트/백준(JAVA)

백준 코딩테스트 1-10-2588 곱셈 코딩 문제 java로 푸는 방법

쏠솔랄라 2023. 3. 5. 13:38

 

 

백준 코딩테스트 단계별로 풀어보기

1단계 입출력과 사칙연산의 10단계 2588번 문제입니다

 

 

https://www.acmicpc.net/step

 

단계별로 풀어보기

단계별은 @jh05013님이 관리하고 계십니다. 단계제목설명정보총 문제내가 맞은 문제1입출력과 사칙연산입력, 출력과 사칙연산을 연습해 봅시다. Hello World!132조건문if 등의 조건문을 사용해 봅시다

www.acmicpc.net

 

 


 

 

 

 

문제
(세 자리 수) × (세 자리 수)는 다음과 같은 과정을 통하여 이루어진다.
(1)과 (2)위치에 들어갈 세 자리 자연수가 주어질 때 (3), (4), (5), (6)위치에 들어갈 값을 구하는 프로그램을 작성하시오.

입력
첫째 줄에 (1)의 위치에 들어갈 세 자리 자연수가, 둘째 줄에 (2)의 위치에 들어갈 세자리 자연수가 주어진다.

출력
첫째 줄부터 넷째 줄까지 차례대로 (3), (4), (5), (6)에 들어갈 값을 출력한다.

 

 

정답

import java.util.Scanner;

public class Main {

public static void main (String[] args) {

 

Scanner sc = new Scanner(System.in);

 

int a = sc.nextInt();

String b = sc.next();

sc.close();

 

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));

}

}

 

=> 이번엔 조금 생각해야 했던 문제

논리구조까지는 생각했는데 기본이 너무 없어서

대체 어떤 함수나 코드를 사용해야 구조를 실현할 수 있는지를 몰랐다

 

세자리 곱셈을 위해 

첫번째 세자리수 a는 int로 받고 두번째 세자리수 b는 각 자리수를 뽑아냈다

charAt(); 을 이용해 세번째 자리수, 두번째 자리수, 첫번째 자리수 순서로 뽑고

각각의 자리수를 a와 곱해 출력

 

string으로 받은 b는 숫자로 바꾸어 주기 위해

Integer.parseInt(b) 사용

 

 

import java.util.Scanner;

public class Main {

public static void main (String[] args) {

 

Scanner sc = new Scanner(System.in);

 

int a = sc.nextInt();

String b = sc.next();

sc.close();

 

System.out.println(a * b.charAt(2));

System.out.println(a * b.charAt(1));

System.out.println(a * b.charAt(0));

System.out.println(a * Integer.parseInt(b));

}

}

 

처음에 이렇게 넣었더니 틀림

-'0' 을 해주는 이유는

문자로 저장된 숫자를 보이는 숫자 그대로의 값으로 바꾸어 주기 위함이다

 

** 아스키코드값으로 출력되는 char값을 int로 바꾸어주기 위해 -'0'을 해주는데,

아스키코드 0은 48이므로 값에 -48을 해 주어 int 숫자값으로 바꾸어줌

이 부분을 몰라서 찾아봤는데 잘 설명된 블로그가 있다

https://cokes.tistory.com/80

 

 


 

 

1-1-2557 https://developernew.tistory.com/41 <- 백준 답지 제출 방법
1-2-1000 https://developernew.tistory.com/42
1-3-1001 https://developernew.tistory.com/43
1-4-10998 https://developernew.tistory.com/44
1-5-1008 https://developernew.tistory.com/45
1-6-10869 https://developernew.tistory.com/46
1-7-10926 https://developernew.tistory.com/47
1-8-18108 https://developernew.tistory.com/48
1-9-10430 https://developernew.tistory.com/49