배열 두 배 만들기

GOYENA·2025년 3월 27일

algorithm

목록 보기
4/12

배열 두 배 만들기

정수 배열 numbers가 매개변수로 주어집니다.
numbers의 각 원소에 두배한 원소를 가진 배열을 return하도록 solution 함수를 완성해주세요.

   for(int i=0; i<numbers.length; i++){
                answer[i]=numbers[i]*2;

for문으로 numbers배열을 순회하면서, numbers[i]*2=answer[i].
이 코드를 어디에 입력해야할지 모르겠어서 일단 시도!

👿 시도의 향연

첫 번째 시도.
int[] = answer = { 요 안에 넣기 }

에러난 코드

class Solution {
    public int[] solution(int[] numbers) {
        int[] answer = { 
            for(int i=0; i<numbers.length; i++){
            answer[i]=numbers[i]*2;
            }
        };
        return answer;
    }
}

이해가 잘 안 돼서 배열에 대해서 찾아봄.
배열에 대해 찾다가, 배열의 초기화 방법을 보게 됨.

이 코드를 보고 다시 시도!

int[] answer = { };

배열 answer에 넣고 싶은 값은 고정된 값이 아님.
따라서 미리 지정할 수 없음.
{}이 항목엔 값을 넣을 수 없으니, []이 부분을 바꿔봐야겠다.
그런 이유로
int[] answer = new int[1000];
이렇게 했더니 1000개의 원소자리를 할당했다...🥲

에러난 코드

class Solution {
    public int[] solution(int[] numbers) {
        int[] answer = new int[1000];
        for(int i=0; i<numbers.length; i++){
            answer[i]=numbers[i]*2;
        }
        return answer;
    }       
}

와...엄청난데...ㅋㅋㅋㅋ...

😇에러덕분에 해결!

이 에러 덕분에 힌트를 얻었다.
배열 생성 시 길이정보를 넣는 [ ]이 부분에 입력된 수만큼 자리를 할당한다는 것을 가시적으로 확인.
어떻게 하면 알맞게 변수의 자리를 할당할까?!
생각 생각🤔
아! numbers.length가 들어가면, 딱 맞게 값의 자리를 할당하겠구나!
혹시나 싶어 int[] answer = new int[numbers.length];
이렇게 바꿨더니 성공!!!

해결된 코드

class Solution {
   public int[] solution(int[] numbers) {
      int[] answer = new int[numbers.length];
      for (int i = 0; i < numbers.length; i++) {
         if (numbers[i] >= -10000 &&
            numbers[i] <= 10000 &&
            numbers.length >= 1 &&
            numbers.length <= 1000) {
            answer[i] = numbers[i] * 2;
         }
      }
      return answer;
   }
}

💡문제를 통해 배운 것!

배열 생성

1.배열 선언

타입[] 변수; 또는 타입 변수[];
오늘 푼 문제에 적용해 보면
int[] answer; 또는 int answer[];

2.배열 생성

✔️값 목록으로 배열 생성

타입[] 변수 = { 값0, 값1, 값2, 값3, … };
✔️new 연산자로 배열 생성

중괄호{ } 안에 들어갈 값을 갖고 있지 않지만, 향후 값들을 저장할 배열을 미리 만들고 싶을 때 사용.
내가 오늘 사용한 방법.

타입[] 변수 = new 타입[길이];

profile
헤헷

0개의 댓글