[자바(JAVA)] x만큼 간격이 있는 n개의 숫자 (valueOf())

Noh Jihyeon·2023년 12월 14일
0

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




✅ 내 풀이


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;
    }
}




처음 이 문제를 풀었을때는 오답으로 나왔는데 그 이유는 타입변환에 있었다.
x 자체가 int이기 때문에 long 타입으로 변환해주지 않으면 부분 에러가 발생하게 된다.
그렇지 않으면 큰 수에서 오버플로우가 발생할 수 있다.


valueOf 메서드

valueOf 메서드는 Java에서 기본 데이터 타입을 해당하는 래퍼 클래스의 객체로 변환하는 데 사용되는 정적 메서드다.
이 메서드는 기본 데이터 타입을 객체로 변환하는 과정, 즉 오토박싱(autoboxing)에 유용하다.



valueOf 메서드의 역할과 사용

  • 기본 데이터 타입: int, long, float, double, boolean, char 등
  • 래퍼 클래스: Integer, Long, Float, Double, Boolean, Character 등



int number = 10;
Integer integerValue = Integer.valueOf(number);



이러한 방법으로 문제를 해결하면서 각 메서드와 클래스의 특성을 이해하고, 상황에 맞는 최적의 해결책을 찾는 데 도움이 되었습니다.

사용 예시

  1. 정수 변환 예시:
int number = 10;
Integer integerValue = Integer.valueOf(number);

int -> Integer 객체로 변환



  1. 문자열 변환 예시:
Integer integerValue = Integer.valueOf("123");

문자열 "123" -> Integer 객체로 변환




주의사항

  • valueOf 메서드는 자동으로 형변환을 수행하지 않는다.
    예를 들어, Double.valueOf(3)는 오류를 발생시킬 수 있기 때문에 Double.valueOf(3.0)과 같이 실수 리터럴을 사용하는 것을 주의하자.
profile
꼭꼭 씹어서 소화시키는 맛있는 코딩

0개의 댓글