문제 설명
정수 n과 정수 배열 numlist가 매개변수로 주어질 때, numlist에서 n의 배수가 아닌 수들을 제거한 배열을 return 하도록 solution 함수를 완성해주세요.
제한사항
- 1 <= n <= 10,000
- 1 <= numlist의 크기 <= 100
- 1 <= numlist의 원소 <= 100,000
입출력 예
n | numlist | result |
3 | [4, 5, 6, 7, 8, 9, 10, 11, 12] | [6, 9, 12] |
5 | [1, 9, 3, 10, 13, 5] | [10, 5] |
12 | [2, 100, 120, 600, 12, 12] | [120, 600, 12, 12] |
class Solution {
public int[] solution(int n, int[] numlist) {
int[] arr = new int[numlist.length];
int cnt = 0;
for (int i = 0; i < numlist.length; i++) {
if (numlist[i] % n == 0) {
arr[cnt] = numlist[i];
cnt++;
}
}
int[] answer = new int[cnt];
for (int i = 0; i < cnt; i++) {
answer[i] = arr[i];
}
return answer;
}
}
이 코드는 크게 두 가지로 나눌 수 있습니다. n의 배수인 원소를 구하는 부분과 answer 배열의 배열 크기를 구하는 부분입니다. 우선 for문으로 numlist의 길이만큼 순회하면서 numlist의 i번째 원소가 n으로 나누어떨어지는지 확인합니다. 맞다면 n의 배수이므로 numlist의 i번째 원소를 arr 배열의 cnt 번째 위치에 추가해줍니다. 조건에 부합할 때 cnt가 1씩 증가합니다. 여기서 증가한 cnt 값은 이후 answer 배열의 크기를 지정할 때 쓰입니다. 조건을 충족하는 원소의 수와 증가한 cnt 수가 똑같기 때문입니다.
이후 answer 배열을 만들고, for문이 cnt만큼 순회하면서 answer[i]에 arr[i] 값을 할당해줍니다. 입출력 예에 중복값을 허용하고 있으므로 중복값을 제거하는 등은 하지 않았습니다.
'프로그래머스 > Lv. 0(코딩테스트 입문)' 카테고리의 다른 글
[프로그래머스 코딩테스트] 자릿수 더하기(Java) (0) | 2023.03.30 |
---|---|
[프로그래머스 코딩테스트] 369게임(Java) (0) | 2023.03.30 |
[프로그래머스 코딩테스트] 배열의 유사도(Java) (0) | 2023.03.29 |
[프로그래머스 코딩테스트] 편지(Java) (0) | 2023.03.29 |
[프로그래머스 코딩테스트] 삼각형의 완성조건(1)(Java) (0) | 2023.03.28 |