CHCI 문제는 대회에서 사용했었던 TC (Judge Data) 가 공개되어 있습니다. 에러가 발생하는지 한 번 해보셔요.
3020번 - 개똥벌레
CHCI 문제는 대회에서 사용했었던 TC (Judge Data) 가 공개되어 있습니다. 에러가 발생하는지 한 번 해보셔요.
지금부터 설명할 내용은 java 컴파일러 및 인터프리터 내부의 최적화와 관련된 내용입니다. OS, java 버전, 최적화 적용 여부 등에 따라 언제든지 변경될 수 있는 내용이므로 지금 설명드리는 내용에 의존하는 코드를 작성해서는 안됩니다.
int -> Integer 로 형변환이 일어날 때 (이를 boxing conversion 이라고 합니다) 절대값이 작다면 cache를 이용한 최적화를 수행할 수 있습니다.
예를 들어서 서로 다른 연산의 결과로 각각 (Integer)20 를 얻었다면, 이 값은 == 로 비교했을 때 대부분 true 를 반환하는 반면
서로 다른 연산의 결과로 각각 (Integer)100000 을 얻었다면, 이 값은 == 로 비교했을 때 대부분 false를 반환합니다.
다시 한 번 말씀드리지만 실제 코드를 작성할 때 이런 내부 최적화에 의존하는 코드를 작성하시면 안 되며, Integer (int 아님)을 비교할 때는 반드시 .equals 를 사용해야 합니다.
댓글을 작성하려면 로그인해야 합니다.
mamamau 6년 전