정수 n이 매개변수로 주어질 때, n 이하의 홀수가 오름차순으로 담긴 배열을 return하도록 solution 함수를 완성해주세요.
class Solution {
public int[] solution(int n) {
int[] answer = {};
return answer;
}
}
입출력 #1
입출력 #1
import java.util.ArrayList;
class Solution {
public ArrayList solution(int n) {
ArrayList<Integer> list = new ArrayList<Integer>(); // 선언 : Integer 타입으로 홀수를 담을 list
for(int i = 1; i <= n; i += 2) { // 1부터 매개변수n까지 2씩 더하면서
list.add(i); // 값 추가 : list에 추가
}
return list;
}
}
ArrayList 를 사용
for문 조건식에 홀수 조건을 담았음
이미 오름차순 정렬돼있으므로, 이 부분은 상관하지 않아도 됨
import java.util.*;
class Solution {
public int[] solution(int n) {
List<Integer> list = new ArrayList<>(); // 선언 : new 연산자 일 경우, 타입 파라미터 생략 가능
for (int i = 1; i <= n; i++) {
if (i % 2 != 0) {
list.add(i); // 값 추가 : list에 추가
}
}
int[] answer = new int[list.size()]; // 선언
for (int i = 0; i < list.size(); i++) {
answer[i] = list.get(i); // 값 출력
}
return answer;
}
}
처음에 선언돼있던 answer 배열을 사용하는 방법
참고: 배열, ArrayList - ArrayList - (1) 선언, (2) 값 추가, (4) 크기 구하기, (6) 값 출력
class Solution {
public int[] solution(int n) {
int cnt = 0;
// 전체 수 中 홀수만 구하기 -> 홀수들이 들어갈 배열을 생성하기 위해
if(n % 2 == 0) { // n 이 짝수일 경우
cnt = n/2;
} else { // n 이 홀수일 경우
cnt = n/2 + 1;
}
// cnt 를 담은 새로운 배열 arr 를 생성
int[] arr = new int[cnt];
int num = 1;
for (int i = 0; i < arr.length; i++) {
arr[i] = num;
num += 2;
}
return arr;
}
}
class Solution {
public int[] solution(int n) {
int[] answer = {};
// 전체 수 中 홀수만 구하기 -> 홀수들이 들어갈 배열을 생성하기 위해
if(n % 2 == 0) { // n 이 짝수일 경우
answer = new int[n/2];
} else { // n 이 홀수일 경우
answer = new int[n/2 + 1];
}
int cnt = 0;
for (int i = 1; i <= n; i += 2) {
answer[cnt] = i;
cnt++;
}
return answer;
}
}