[JAVA] 프로그래머스 : 짝수는 싫어요
문제 설명
정수 n
이 매개변수로 주어질 때, n
이하의 홀수가 오름차순으로 담긴 배열을 return하도록 solution 함수를 완성해주세요.
My Solution
Code
class Solution {
public int[] solution(int n) {
// 홀수의 개수를 구하는 방법
int count_odds = 0;
if (n % 2 != 0) { // n이 짝수일 떄
count_odds = (n / 2) + 1;
} else { // n이 홀수일 때
count_odds = (n / 2);
}
int[] answer = new int[count_odds];
int count2 = 0;
for (int i = 1; i <= n; i++) {
if (i % 2 != 0) {
answer[count2] = i;
count2++;
}
}
return answer;
}
}
Approach
- 정답 배열(answer)에 원소를 할당하기 위해 고정적인 크기를 구함
- 문제에서 주어진 N이 홀수이거나 짝수일 수 있음
- 따라서 N이 홀수 or 짝수일떄 “홀수의 개수”를 구해야함
- N이 짝수일 때, 홀수의 개수 = (N / 2);
- N이 홀수일 떄, 홀수의 개수 = (N / 2) + 1;
- 이후 for loop를 통해 N 이하의 원소들을 반복하면서 홀수들만 배열에 따로 저장 후 리턴
Review
- 정답 배열을 초기화하기 위해 선언된 answer 배열을 만들어놓는게 좋을까 ? 혹은 ArrayList를 통해 처리하는게 좋을까 ?
Enhanced
다른 사람 풀이
01. ArrayList를 활용한 풀이
public ArrayList<Integer> solution2(int n) {
ArrayList<Integer> arr = new ArrayList<>();
for (int i = 1; i <= n; i++) {
if (i % 2 != 0) {
arr.add(i);
}
}
return arr;
}
- 고정된 크기를 할당하는 배열을 따로 선언하지 말고 ArrayList를 선언한 뒤 처리하기
Leave a comment