백준

백준 16504번 문제 종이접기 (Java)

gxxgsta 2021. 4. 18. 20:12
반응형
SMALL
package paper;

import java.util.Scanner;

public class Main{
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        
        int N = sc.nextInt();
        long sum = 0;
        
        for(int i=0; i<N*N; i++){
            int num = sc.nextInt();
            sum += num;
        }
        System.out.print(sum);
    }
}

종이를 접으며 더한 값과 입력받은 모든 숫자의 합은 같다.

이때, 더한 값의 크기(sum)는 int가 수용할 수 있는 범위를 넘어섰으므로 long형을 사용해야함을 잊지 말아야 한다.

N (N = 2^m, 1 ≤ m ≤ 10)

K (1 ≤ K ≤ 100,000)

모두 가장 큰 값을 입력 받았을 경우 sum=1024*1024*100,000=104,857,600,000이다.

하지만 int의 크기는 -2,147,483,648 ~ 2,147,483,647이므로 long를 사용해야한다.

(long의 크기 = -9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807)

반응형
LIST