이 문제는 보자마자 어떻게 풀어야 할지 감이 왔다. 그동안 charAt로 입력받은 문자열에서 한글자씩 떼기를 반복하기도 했고, 구구단 문제처럼 풀면 되겠거니 감이 왔기 때문이다.
그런데.....
쩝.....
사실 세번째부터는 이상한 실수를 해서 그렇게 된 것이지만, 두번째까지는 다른 문제가 있었다.
입력에 10,000자리를 넘지 않는 음이 아닌 정수 라고 적혀있는데, 10000까지의 정수가 아니라 저 자리의 정수라서 매우 큰 수이다. 그래서 숫자라도 int대신 long을 써줘야 한다.
import java.util.Scanner;
public class Main {
public static void main(String[] args) throws Exception{
String A, B;
Scanner in = new Scanner(System.in);
A = in.next();
B = in.next();
long result = 0; //int로 쓰면 출력초과가 되어 long으로 수정
for(int i=0; i<A.length(); i++) {
for(int j=0; j<B.length(); j++) {
result += Long.parseLong(A.charAt(i)+"") * Long.parseLong(B.charAt(j)+"");
//char+""으로 String으로 변환한다
//출력 초과 문제때문에 Long으로 변환한다
}
}
System.out.println(result);
}
}
char를 String으로 변경하는 방법은 .toString()이나 .valueOf() 만 알고 있었는데 +""로 간편하게 바꾸는 법을 알게 되었다.
그런데 찾아보니 이런식으로 변환하는 방식은 속도가 위에 쓴 것들에 비해 느리다고 한다.... 빠른 속도가 필요없을 때만 쓰는게 좋을듯 하다. ㅎㅎ
'Study > 알고리즘' 카테고리의 다른 글
백준 1267번 - 핸드폰 요금 JAVA (0) | 2022.08.20 |
---|---|
백준 1233번 - 주사위 JAVA (0) | 2022.08.11 |
1193번 - 분수찾기 JAVA (0) | 2022.08.05 |
백준 1173번 - 운동 JAVA (0) | 2022.08.04 |
백준 1259번 - 팰린드롬수 JAVA (0) | 2022.08.02 |