풀이
- 해당 문제는 단순히 각 자리의 값을 곱하는
- 2중 for문으로 접근하여 해결하려 하니까 시간 초과가 계속 발생해서
- 방법을 찾아보니 각 자리의 합을 먼저 구한 다음 곱하면 된다는 것을 알게 되어
- 아래와 같이 간단하게 해결할 수 있었다.
추가 학습
- 파이썬은 위와 같이 적용했을때 되었는데 자바에선 왜 안되는건지 생각해보다가
- 혹시 int의 초과 값 때문인건지 생각이 들어 Long으로 타입을 변경 후 제출하니 해결할 수 있었다.
import java.io.*;
import java.util.*;
public class 이상한곱셈 {
public static void main(String[] args) throws IOException{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(br.readLine());
char[] a_li = st.nextToken().toCharArray();
Long a = 0L;
char[] b_li = st.nextToken().toCharArray();
Long result = 0L;
for (int i = 0; i < a_li.length; i++) a += Integer.parseInt(String.valueOf(a_li[i]));
for (int i = 0; i < b_li.length; i++) result += a*Integer.parseInt(String.valueOf(b_li[i]));
System.out.println(result);
}
}
'알고리즘' 카테고리의 다른 글
[백준, 자바, 1296번] 팀 이름 정하기 (0) | 2024.01.02 |
---|---|
[백준, 파이썬, 1296번] 팀 이름 정하기 (0) | 2024.01.02 |
[백준, 파이썬, 1225번] 이상한 곱셈 (0) | 2023.12.29 |
[백준, 자바, 1015번] 수열 정렬 (0) | 2023.12.28 |
[백준, 파이썬, 1015번] 수열 정렬 (0) | 2023.12.28 |