← 모든 알고리즘

변수

값을 저장하는 변수와 기본 자료형(int, long long, double 등).

Bronze
변수와 자료형: 값을 담는 그릇 공식

변수란?

변수(variable) 는 값을 담아 두는 이름표가 붙은 상자입니다. 프로그램은
입력으로 받은 수, 중간 계산 결과 따위를 변수에 저장해 두고 꺼내 씁니다.

int age = 17; // 정수
double pi = 3.14; // 실수
char grade = 'A'; // 문자 하나
age = 17 # 정수
pi = 3.14 # 실수
grade = 'A' # 문자열(파이썬엔 char 타입이 없다)

C++은 변수를 만들 때 자료형을 반드시 적어야 하고, 파이썬은 대입하는 값에
따라 자료형이 자동으로 정해집니다.


1. 자주 쓰는 정수 자료형 (C++)

자료형 크기 대략적인 범위
int 4바이트 약 -21억 ~ 21억
long long 8바이트 약 -9.2 × 10^18 ~ 9.2 × 10^18

규칙은 간단합니다. 계산 결과가 약 21억(2,147,483,647)을 넘을 수 있으면
long long을 쓰세요.
예를 들어 두 수의 곱이나 1부터 N까지의 합은 금방
int 범위를 넘깁니다.

long long a = 1000000, b = 1000000;
cout << a * b << '\n'; // 10^12 — long long이라 안전

파이썬의 정수(int)는 크기 제한이 없으므로 오버플로를 걱정할 필요가 없습니다.


2. 실수 자료형

소수를 담을 땐 C++에서 double을 씁니다 (float보다 정밀해서 거의 항상
double을 권장).

double x = 1.0 / 3.0; // 0.333333...

실수는 정확히 저장되지 않을 수 있다는 점만 기억하세요. 0.1 + 0.2
정확히 0.3이 아닌 것이 대표적입니다. 그래서 실수는 ==로 비교하지 않고,
"차이가 아주 작으면 같다"로 판단합니다.


3. 자료형 변환 (형변환)

int a = 7, b = 2;
double r = (double)a / b; // 3.5 — 한쪽을 double로 바꿔야 함
a, b = 7, 2
print(a / b) # 3.5 (파이썬 /는 항상 실수 나눗셈)
print(a // b) # 3 (정수 나눗셈)

C++에서 int / int정수 나눗셈이라 7 / 2 == 3이 됩니다. 실수 결과가
필요하면 한쪽을 double로 형변환하세요.


4. 자주 하는 실수

  • 오버플로int끼리 곱했는데 결과가 21억을 넘는 경우. long long으로 바꾸거나, 곱하기 전에 (long long)으로 형변환하세요.
  • 초기화 안 한 변수 — C++에서 값을 넣지 않은 지역 변수는 쓰레기 값을 가집니다. 합을 구할 땐 꼭 int sum = 0;처럼 0으로 시작하세요.
  • 정수 나눗셈 착각 — 평균을 구할 때 (a+b)/2가 정수로 잘리는 실수가 흔합니다.

연습 팁

새 변수를 만들 때마다 "이 값이 가질 수 있는 최댓값은 얼마인가?"를 먼저
떠올려 보세요. 그 답이 21억을 넘으면 망설이지 말고 long long입니다.