TIL (Today I Learned)

99클럽 코테 스터디 2일차 TIL + 오늘의 학습 키워드

남 희 2024. 7. 23. 23:37

☑️ 문제: x만큼 간격이 있는 n개의 숫자

https://school.programmers.co.kr/learn/courses/30/lessons/12954

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

☑️ 핵심 코드

for (int i = 0; i < n; i++) {
	answer[i] = (long) x * (i + 1);
}
  • 처음에 틀렸던 부분: answer[i]에 (long) 변환을 넣어주지 않아서, answer[i]에 int로 계산된 값이 들어갔다.
  • 틀린 이유: x는 10^7, n은 10^3이기 때문에 int의 범위를 넘는 결과 값을 가질 수 있다. 그런데 int * int로 하면 int 계산값이 나오므로 큰 수 계산 시에 원하는 결과가 나오지 않는다.
더보기
class Solution {
    public long[] solution(int x, int n) {
        long[] answer = new long[n];
        for (int i = 0; i < n; i++) {
            answer[i] = (long) x * (i + 1);
        }        
        return answer;
    }
}

 

☑️ 기억하자

오늘의 학습 키워드: int와 long
  byte 범위
int 4 -2,147,483,648 ~ 2,147,483,647 (약 2 * 10^9)
long 8 -9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807 (약 9 * 10^18)

 

참고: long의 크기는 OS와 어플리케이션의 bit에 따라 달라진다.

 

☑️ 회고

  • 평소라면 틀릴 부분이 아닌데 수면 부족이 얼마나 큰 영향을 주는지 느낀 날.
    앞으로는 그 날 점심시간을 활용해서 문제를 풀어서라도 수면 시간은 확보해야겠다.
    (아직 시작한지 얼마 안 돼서 일정 시행착오 몇번 겪을 듯.)

 

참고자료:

https://wikidocs.net/26940