Programming

(고찰) MAX_INT

wizi 2021. 2. 24. 20:35

c++이나 java와 같이 자료형이 존재하는 언어로 알고리즘 문제를 풀 때

const int INF = 987654321 과 같은 정수형을 선언할 때가 있다.

 

고찰 - 어떤값을 사용해야 잘 사용했다고 소문이날까?

 

일단 내가 사용하는 max값은 주로 0x3f3f3f3f 라는 16진수를 사용하고있다. 

0x3f3f3f3f(16) = 1061109567(10)  이다.

이 수는 10억이 살짝 넘는 수이고 2를 곱했을때 2^31을 넘지 않는 수이다.

(degurii.tistory.com/  블로그 관리자가 알려줬다 ^-^) 이거 홍보임 암튼 홍보임

 

데구리 블로그

웹 개발과 알고리즘을 공부합니다.

degurii.tistory.com

그렇다면 다른 값으로는 무엇이 있을까?

 

int MAX = 987654321; 을 보자

만약 테스트 케이스가 맥시멈으로 10억이 들어왔다고 생각해보자.

예를 들면 간단하게 "n = 100000이고 최대값이 10000이고 여러 구간중 가장 큰값인 경우" 를 보자

모든 값이 10000이라면 답은 10억이다. 터진다. 

특수한 경우지만 만약 정말 이런 테스트 케이스가 문제에 있었다면?

=> 디버깅 하기가 힘들다.

 

int MAX = INT_MAX;

INT_MAX 와 같은 최대값이나 최소값이 정의된 상수들은 일단 헤더파일이 있어야한다.

(#include <limits.h> / #include <climits>)

추가하기 귀찮다. 물론 #include <bits/stdc++.h> 사용하면 상관없다.

그리고 만약 잘못해서 MAX에다가 1이라도 더했다간 바로 오버플로우 ㄷㄷ;;

 

 

사실 어떤것을 사용하던 자기 코딩스타일에 맞추면 된다.

내가 최대한 오류를 안낼 수 있는 방향을 선택하는게 좋은 것 같다.

 

하지만 나는 위에 소개한 블로그 주인의 말을 듣고 0x3f3f3f3f를 사용한다.

0x 십육진수에  3f네개   왜?? int형은 32비트니까 4비트 짜리가 8개가 들어간다.

(16진수에서 1자리는 4비트이므로)

쓰기 편하다 추천!

 

'Programming' 카테고리의 다른 글

(고찰) version 표기법  (0) 2021.07.12
(고찰) vim에디터  (0) 2021.02.25