정수 배열 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 타입[길이];