강의

멘토링

로드맵

인프런 커뮤니티 질문&답변

jylee님의 프로필 이미지
jylee

작성한 질문수

자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비

10. 문자거리

p 값을 Integer.MAX_VALUE 할 경우

작성

·

458

1

안녕하세요.

int p = Integer.MAX_VALUE;

라고 두고 코드를 짰는데 결과값이

-2147483648 0 1 2 1 0 1 2 2 1 0

이렇게 나옵니다. 게다가 정수 최대값으로 설정했는데 결과는 음수값으로 나오네요.

왜 그러는 걸까요?

퀴즈

대소문자를 구분하지 않고 문자열 내 특정 문자의 총 개수를 세려면, 어떤 방법이 가장 효율적일까요?

문자열을 반복하며 각 문자가 찾으려는 문자의 대문자 또는 소문자인지 모두 비교한다.

문자열 전체를 한 가지 케이스(예: 모두 대문자)로 통일한 후 해당 문자의 개수를 센다.

대문자와 소문자의 개수를 각각 세어 합산한다.

Set 자료구조를 사용하여 중복 없이 문자를 저장한 후 개수를 센다.

답변 1

2

int p = Integer.MAX_VALUE;

int 자료형의 최대값을 p에 저장했는데 거기에 p++;

을 해주면 int형의 범위가 넘어서기 때문에 오버플로우가 발생합니다.

jylee님의 프로필 이미지
jylee

작성한 질문수

질문하기