Notice
Recent Posts
Recent Comments
Link
Coding Note
[백준] 2588번 - 곱셈 본문
풀이해보면 입력 두번째 값을 순서대로 첫 번째 값에 곱하면 된다.
1. 문자열로 입력받아 charAt()로 하나씩 가져와 곱하는 방법
< 풀이 >
1. 첫 번째 값 a는 정수로 입력받고 두번째 값 b는 문자열로 입력받는다.
2. b값 문자열은 charAt() 함수를 사용해 자리값(index)을 참조한다.
더보기
ex) "apple"
charAt(0) = a , charAt(1) = p, charAt(2) = p, charAt(3) = l, charAt(4) = e
3. 자리값에 아스키 코드 '0'을 뺀다.
Q. '0'을 빼는 이유는?
문자로 저장된 숫자가 아닌 정수 숫자 그대로의 값을 쓰기 위함!
즉, 아스키 코드 '0'은 48임.
import java.util.Scanner;
public class CodingT1 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int a = sc.nextInt();
String b = sc.next();
sc.close();
//0은 아스키코드 48
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));
}
}
2. 수학적 풀이 - 나머지와 나눗셈 연산을 통해 각 자릿수를 구하여 곱하는 방법
< 풀이 >
1. 두 개의 입력값을 정수로 받는다.
2. 입력값을 각 자릿수 별로 가져온다.
일의 자리 5의 경우 385 % 10 을 해주면 나머지 값 5가 반환이 된다.
십의 자리 8은 385%100 을 해주면 나머지 값 85가 나오고 이걸 10으로 나누면, 즉 85/10 을 하면 8.5, 8이 반환 된다.
백의자리 3은 385/100 을 하면 3.85, 3이 된다.
public class CodingT2 {
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);
}
}
'JAVA > 코딩 테스트' 카테고리의 다른 글
[백준] 2884번 : 알람 시계, 2525번 : 오븐 시계 (0) | 2022.04.13 |
---|---|
[JAVA] CodeUp 기초 1019 ~ 1022 (0) | 2022.02.10 |
[JAVA] CodeUp 기초 1017 ~ 1018 (0) | 2022.02.09 |
[JAVA] CodeUp 기초 1012 ~ 1015 (0) | 2022.02.08 |
[JAVA] CodeUp 기초 1010 ~ 1011 (0) | 2022.02.08 |
Comments