Java/Java 알고리즘

백준 1225번 이상한 곱셈 JAVA 구현해보기

kimc 2022. 5. 7. 22:01

```

백준 1225번 이상한 곱셈 JAVA 구현해보기

```

이번 글을 통해 배워갈 내용

  1. 백준 1225번 풀이

https://www.acmicpc.net/problem/1225

 

1225번: 이상한 곱셈

첫째 줄에 A와 B가 주어진다. 주어지는 두 수는 모두 10,000자리를 넘지 않는 음이 아닌 정수이다. 수가 0인 경우에는 0만 주어지며, 그 외의 경우 수는 0으로 시작하지 않는다.

www.acmicpc.net

 

 

 

백준 1225번 이상한 곱셈은

난이도 브론즈 등급의 문제로서

 

숫자 A와 B가 주어지면

각 자릿수를 각 자릿수마다 곱해주면 됩니다.

예를 들어

123 하고 456이면

1 * 4 + 1 * 5 + 1 * 6

+ 2 * 4 + 2 * 5 + 2 * 6

+ 3 * 4 + 3 * 5 + 3 * 6

을 해주면 됩니다.

 


30분 정도 위에 링크를 방문하셔서 풀어보시고

안 풀리시는 경우에만 아래 해답을 봐주시면 감사하겠습니다.


각 수를 리스트로 바꿔서

리스트끼리 곱해주었습니다.

시간 복잡도는 for문 두 번이어서 O(n^2)입니다.

 

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Arrays;
import java.util.List;
import java.util.StringTokenizer;
import java.util.stream.Collectors;

public class Main {

    public static void main(String[] args) throws IOException {
        // BufferedReader Object 생성
        final BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        // StringTokenizer Object 생성
        final StringTokenizer st = new StringTokenizer(br.readLine());
        // 입력
        final List<Integer> numA = Arrays.stream(st.nextToken().split("")).map(Integer::parseInt).collect(Collectors.toList());
        final List<Integer> numB = Arrays.stream(st.nextToken().split("")).map(Integer::parseInt).collect(Collectors.toList());

        long sum = 0;
        for (int elemA : numA) {
            for (int elemB : numB) {
                sum += elemA * elemB;
            }
        }
        // 출력
        System.out.print(sum);
        // 생성된 BufferedReader 반환
        br.close();
    }
}
//codemasterkimc.tistory.com [김씨의 코딩 스토리]

 

읽어주셔서 감사합니다

 

무엇인가 얻어가셨기를 바라며

 

오늘도 즐거운 코딩 하시길 바랍니다 ~ :)

 


 

728x90