문제 설명
정수 n이 매개변수로 주어질 때, n 이하의 홀수가 오름차순으로 담긴 배열을 return하도록 solution 함수를 완성해주세요.
제한사항
- 1 <= n <= 100
입출력 예
n | result |
10 | [1, 3, 5, 7, 9] |
15 | [1, 3, 5, 7, 9, 11, 13, 15] |
class Solution {
public int[] solution(int n) {
int[] answer;
if (n % 2 == 0) {
answer = new int[n / 2];
} else {
answer = new int[(n + 1) / 2];
}
for (int i = 0; i < answer.length; i++) {
answer[i] = (i * 2) + 1;
}
return answer;
}
}
if문을 통해 answer 배열의 길이를 정해주었습니다. 만약 정수 n이 짝수라면 배열의 길이는 n의 절반이고 그렇지 않다면 n 1을 더한 후 절반으로 나누었습니다. (절반으로 나눈 후 1을 더해도 결과적으로는 같습니다.) 이후 answer 배열의 길이만큼 for문을 순회하면서 answer 배열에 차곡차곡 정답이 쌓입니다.
(0 * 2) + 1, (1 * 2) + 1, (2 * 2) + 1…. |
for문을 순회하면서 작은 수부터 입력되므로 따로 배열 정리는 하지 않았습니다.
ArrayList를 통해 저처럼 배열크기를 지정하지 않고 푸는 분도 있었지만, stream을 통해 간단하게 푸는 분을 제외하고 대체로 대동소이한 코드들이었습니다. i 값을 어떻게 도출해내느냐 정도의 차이였던 것 같아요.
눈물과 비명의 3일차 클리어였습니다.
'프로그래머스 > Lv. 0(코딩테스트 입문)' 카테고리의 다른 글
[프로그래머스 코딩테스트] 피자 나눠 먹기(2)(Java) (0) | 2023.03.23 |
---|---|
[프로그래머스 코딩테스트] 피자 나눠 먹기(1)(Java) (0) | 2023.03.23 |
[프로그래머스 코딩테스트] 최빈값 구하기(Java) (0) | 2023.03.23 |
[프로그래머스 코딩테스트] 중앙값 구하기(Java) (0) | 2023.03.22 |
[프로그래머스 코딩테스트] 나머지 구하기(Java) (0) | 2023.03.22 |