int와 long의 차이를 아는가?
int는 4바이트(32비트), long은 8바이트 (64비트) 다.
대부분의 경우 long을 굳이 사용하지 않고도 int로 왠만한 데이터는 처리 가능하지만,
코딩 테스트에서는 이것만큼 문제 내기 좋은 것이 없다.
코딩 테스트에서는 흔히 함수를 작성하는 문제가 나오고, 해당 함수는 종종 특정 범위의 정수값을 제약 조건으로 갖고 있다. 이는 두 가지를 의미가 있다.
1. 해당 범위를 벗어난 값은 들어오지 않는다는 것
2. 해당 범위 안에선 어떤 값도 들어올 수 있다는 것
보통 1만 생각하기 쉬운데, 2번을 놓치면 오버플로우/언더플로우의 함정에 빠질 수 있다.
int의 최대값은 2^31, 최솟값은 -2^31이다. +- 21억 정도이다. (참고 : 2^10 = 1024)
long의 범위는 그 제곱이 되므로, 최대값은 2^63, 최솟값은 2^-63이 된다. +- 9223조 정도이다.
숫자의 범위와 알고리즘 초안을 보고 int가 오버플로우/언더플로우 날 가능성이 있는지, 있다면 int를 long으로 캐스팅하는 작업이 필요하다.
관련 문제 (출처 : 프로그래머스)
문제 설명
함수 solution은 정수 x와 자연수 n을 입력 받아, x부터 시작해 x씩 증가하는 숫자를 n개 지니는 리스트를 리턴해야 합니다. 다음 제한 조건을 보고, 조건을 만족하는 함수, solution을 완성해주세요.
제한 조건
x는 -10000000 이상, 10000000 이하인 정수입니다.
n은 1000 이하인 자연수입니다.
정답
class Solution {
public long[] solution(int x, int n) {
var answer = new long[n];
for(int i = 0;i < n;i++){
answer[i] = (long)x*(i+1);
}
return answer;
}
}
다른 정답 보기
https://school.programmers.co.kr/learn/courses/30/lessons/12954/solution_groups?language=java
프로그래머스
SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
참고
https://bryandev.tistory.com/589
자바 int와 long 자료형
1) int와 long - 자바는 정수형 자료형으로 byte, short, int, long을 제공합니다. 이 글에서는 그 중에서 자주 쓰이는 int, long을 알아보겠습니다. - 컴퓨터의 기본 단위는 비트입니다. 이 비트는 0,1이라는
bryandev.tistory.com
'Projects > Java [Personal]' 카테고리의 다른 글
| Test - 2부 (0) | 2026.02.12 |
|---|---|
| Test - 1부 (0) | 2026.02.12 |
| [Java] 이커머스 프로그램 개발일지 (0) | 2025.12.18 |
| [프로젝트 리뷰] 계산기 만들기 과제 (0) | 2025.12.16 |
| [Java] 문자열을 Enum으로 변환하는 메서드를 static으로 작성해야 하는 이유 (0) | 2025.12.10 |