최대 1 분 소요

[백준 1225번] 이상한 곱셈

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
package _1월_3주차;
 
import java.util.Scanner;
public class 백준_손수경_정답_1225 {
 
    public static void main(String[] args) {
        
        //sol 2. 배열을 이용한 경우
        Scanner sc = new Scanner(System.in);
        String a = sc.next(); 
        String b = sc.next();
        String integerA[] = a.split("");
        String integerB[] = b.split("");
        long fristSum = 0;
        long secondSum = 0;
        
        //Integer.parseInt() -> 문자형을 10진수로 바꿔줌
        for (int i = 0; i < integerA.length; i++) {
            fristSum += Integer.parseInt(integerA[i]);
        }
        
        for (int i = 0; i < integerB.length; i++) {
            secondSum += Integer.parseInt(integerB[i]);
        }
        System.out.println(fristSum * secondSum);
    }
}
 
/*
sol 1. 정수형을 이용한 경우 -> 런타임 에러 발생
Scanner sc = new Scanner(System.in);
int a = sc.nextInt();
int b = sc.nextInt();
int fristSum = 0;
int secondSum = 0;
int temp1, temp2;
while (true) {
    temp1 = a % 10;
    a /= 10;
    temp2 = b % 10;
    b /= 10;
    fristSum += temp1;
    secondSum += temp2;
    if (a == 0 && b == 0) {
        break;
    }
}
System.out.println(fristSum * secondSum);
*/
cs

sol 1같은 경우는 정수형으로 푼 문제였는데 계속 런타임 에러가 떠서 찾아보니 문자형으로 해서 풀어야 된다고 하였다,,,(대체 왜,,,?) 문자형을 이용해서 풀려면 우선 그 배열들을 문자 하나씩 배열에 넣어준 다음에 그 요소들을 Integer.parseInt() 를 통해서 10진수로 바꾸어 주어서 계산해 주었다.

댓글남기기