for문 사용 시 자료형을 조심하자!

김치헌·2024년 1월 17일
0

TIL

목록 보기
17/38

오늘은 오전에 PT자료 만들고 오후에는 발표 저녁에는 특강이라 딱히 개발지식에 관련해서는 아침에 진행한 알고리즘 코드타카 밖에 없다...ㅠ

오늘 알고리즘 코드타카를 진행하면서 있었던 문제!에 관해서 적어야겠다.

X만큼의 간격이 있는 n개의 숫자!

말은 그럴싸하지만 X의배수 n개를 작성하라는 말이다.
뭔가 습관처럼 for문을 적기 시작했다.

public class Solution5
{
    public long[] solution(int x, int n)
    {
        long[] answer = new long[n];
        for (int i = 0; i < n; i++)
        {
            answer[i] = x * (i + 1);
        }
        return answer;
    }
}

위와 같이 코드를 작성하고 돌리는데 코드실행은 성공인데 제출하기를 누르면 13번?테스트에서
실패가 발생하는 것을 확인할 수 있었다. 이해가 되지 않아 질문하기를 찾아보니 i를 long으로 선언하거나 계산식에서 명시적 형변환을 long으로 해줘야한다고 했다.

근데 명시적형변환은 상위차원으로 되서 long데이터에 int데이터를 입력할 때 int데이터가 long으로 입력되는 형태일 텐데 어째서 i를 long으로 해줘야 되는지 모르겠다.

answer가 long[]으로 반환되는데 자료형에 문제가 없는 것으로 봐선 i에 int의 범위를 초과하는 값이 들어오는 경우를 생각해봐도 매개변수인 n보다 작은수만 들어오기에 이해가가지 않았다.
아직도 이해가 안간다...ㅠㅠㅠ

이번 코드타카를 하면서 for문을 작성할때 습관적으로 for(int i=0;i<.....)를 적기 시작한다. 내가 for문 안에서 어떤 자료형을 사용하는지 생각도 안하고 작성하다보니 심지어 i에 int를 선언한 것조차 까먹고 있었다..ㅋㅋㅋ 빠르게 작성하는것 보다 좀 더 생각하면서 코드를 작성하는 습관을 길러야 겠다!

profile
초보개발자

0개의 댓글