[백준] 11382

YUN·2025년 9월 4일

C++

목록 보기
9/79

1. <iostream>

#include <iostream>
using namespace std;
int main() {
    long long a,b,c;
    cin >> a >> b >> c;
    
    cout << a + b + c;
    
    return 0;
}

오답노트

(1) 자료형 숙지

잘 보면,1<=A,B,C<=10^(12) 라는 조건이 있다.

즉 매우 큰수를 담을 수 있는 정수자료형이 필요하다.

int는 컴파일러가 동작하는 환경에 따라 자료형의 크기가 달라진다. 즉, 크기가 가변적이다.

그래서 정수라고 무지성 int 쓰면 안된다.

백준의 채점 서버인 Ubuntu 16.04 64bit 환경에서는 int가 8byte(64bit)로 컴파일되니 사용해도된다.

(32비트 환경에서는 int쓰면 1<=A,B,C<=10^(12) 범위의 수를 변수에 담을 수 없다)

그러나 long long을 쓰는 습관을 기르는게 나을 것 같다.

long long은 컴파일러가 어느 환경에서 동작하든 항상 8Byte 이다.

8Byte면 -2^(63) ~ 2^(63)-1 표현된다.

2^(63)은 러프하게 보면 8*(10^3)^6 이므로 문제에서 요구하는 수의 범위인 10^(12)를 충분히 변수에 담을 수 있다.

long long

2. <cstdio>

#include <cstdio>
using namespace std;

int main() {
    long long a,b,c;
    scanf("%lld %lld %lld", &a, &b, &c);
    printf("%lld", a+b+c);
    
    return 0;
}

마찬가지이다.

profile
안녕하세요. 전자공학부 학부생의 공부 기록입니다.

0개의 댓글