🤜🏻알고리즘
첫번째 입력으로 들어오는 세자리수 정수에 두번째 입력으로 들어오는 정수를 분리하여 각 각 곱한 값을 출력한 뒤 마지막에는 원래 식의 연산 값을 출력해주어야 한다.
두번쨰 입력값을 분리하는 방법은 3가지가 있다.
1) 문자열로 입력받아 charAt() 으로 하나씩 꺼내 쓰는 방법
2) 나머지와 나눗셈 연산을 통해 각 자리수를 구하여 쓰는 방법
3) 문자열을 character 배열로 한자리씩 넣어주어 이용하는 방법
1) 3) 방법은 문자열로 입력받기 때문에 가장 마지막 출력에서는 연산하기 위해서 int형으로 변환해주어야 한다.
🤜🏻방법1 : Scanner - CharAt
import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner in = new Scanner(System.in); int A = in.nextInt(); String B = in.next(); in.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)); } }
Scanner를 이용하여 A는 int로, B는 String으로 입력받는다.
그리고 B는 charAt() 으로 각 자리수를 참조해준다.
charAt은 문자열 인덱스 위치에 있는 문자(Character) 값을 반환하는데 반환되는 값은 아스키코드 값인 문자(char)다.
문자열 인덱스를 참조한 뒤 -'0' 을 해주는 이유가 아스키코드 문자를 나타내는 숫자에서 아스키코드 문자를 나타내는 숫자 '0' 을 뺴주면 우리가 보는 숫자 그대로 값을 쓸 수 있다.
마지막 출력은 전체 곱한 결과를 출력하면 되므로 입력받은 문자열을 숫자로 바꿔주는 Integer.parseInt()를 통해 문자열을 int형으로 바꿔주어 A와 곱해준 값을 출력한다.
🤜🏻방법2 : Scanner = MOD
B에 들어오는 입력값을 각 자리수 별로 얻어오기 위해
일의자리 5의 경우 385 % 10 을 해주면 10으로 나눠준 값의 나머지를 구하니 5가 반환된다.
십의자리 8은 385 % 100 을 해주면 85가 나오고 이걸 10으로 나누면 (85/10) ⇒ 8이 반환된다.
백의자리 3은 385/100을 하면 3이 나온다.
import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner in = new Scanner(System.in); int A = in.nextInt(); int B = in.nextInt(); in.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); } }
🤜🏻방법3 : BufferedReader
Uploaded by Notion2Tistory v1.1.0