[JAVA] SWEA 3260 - 두 수의 덧셈

hyng·2022년 5월 11일
0

SWEA

목록 보기
75/78
post-custom-banner

입력 수의 범위가 long을 넘을 것 같아서 한 자리씩 더해주는 식으로 짰는데 bigdecimal을 쓰면 그냥 덧셈만 해주면 된다.

import java.util.*;
class Solution
{
	public static void main(String args[]) throws Exception
	{
		Scanner sc = new Scanner(System.in);
        StringBuffer sb = new StringBuffer();


        int T = Integer.parseInt(sc.nextLine());
        for (int tc = 1; tc <= T; tc++) {
            sb.append("#").append(tc).append(" ");

            String input[] = sc.nextLine().split(" ");
            String n1 = input[0];
            String n2 = input[1];

            String maxString;
            String minString;
            int maxLen = 0;
            int minLen = 0;

            if (n1.length() > n2.length()) {
                maxLen = n1.length();
                maxString = n1;
                minLen = n2.length();
                minString = n2;
            } else {
                maxLen = n2.length();
                maxString = n2;
                minLen = n1.length();
                minString = n1;
            }

            StringBuffer result = new StringBuffer();
            int bef = 0;

            for(int i = maxLen-1, j = minLen-1; i >= 0; i--, j--) {
                int sum = maxString.charAt(i) - '0' + bef;
                if (j >= 0) {
                    sum += minString.charAt(j) - '0';
                }
                bef = sum / 10;
                result.insert(0, sum % 10);
            }
            result.insert(0, bef);
            if (result.toString().charAt(0) == '0') {
                sb.append(result.substring(1)).append("\n");
            } else {
                sb.append(result).append("\n");
            }
        }
        System.out.println(sb);
    }
}
profile
공부하고 알게 된 내용을 기록하는 블로그
post-custom-banner

0개의 댓글