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에 따라 달라진다.
☑️ 회고
- 평소라면 틀릴 부분이 아닌데 수면 부족이 얼마나 큰 영향을 주는지 느낀 날.
앞으로는 그 날 점심시간을 활용해서 문제를 풀어서라도 수면 시간은 확보해야겠다.
(아직 시작한지 얼마 안 돼서 일정 시행착오 몇번 겪을 듯.)
참고자료: