백준 코딩테스트 단계별로 풀어보기
1단계 입출력과 사칙연산의 10단계 2588번 문제입니다
단계별로 풀어보기
단계별은 @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 숫자값으로 바꾸어줌
이 부분을 몰라서 찾아봤는데 잘 설명된 블로그가 있다
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
'코딩테스트 > 백준(JAVA)' 카테고리의 다른 글
백준 코딩테스트 1-12-10171 고양이 코딩 문제 java로 푸는 방법 (0) | 2023.03.05 |
---|---|
백준 코딩테스트 1-11-11382 꼬마 정민 코딩 문제 java로 푸는 방법 (0) | 2023.03.05 |
백준 코딩테스트 1-9-10430 나머지 코딩 문제 java로 푸는 방법 (0) | 2023.03.05 |
백준 코딩테스트 1-8-18108 1998년생인 내가 태국에서는 2541년생?! 코딩 문제 java로 푸는 방법 (0) | 2023.03.05 |
백준 코딩테스트 1-7-10926 ??! 코딩 문제 java로 푸는 방법 (0) | 2023.03.05 |