반응형
(JAVA)
0. 문제 및 입출력 예제
문제
정수 n과 정수 배열 numlist가 매개변수로 주어질 때,
numlist에서 n의 배수가 아닌 수들을 제거한 배열을 return하도록 solution 함수를 완성해주세요.
제한사항
1 ≤ n ≤ 10,000
1 ≤ numlist의 크기 ≤ 100
1 ≤ numlist의 원소 ≤ 100,000
입출력 예
입출력 예 #1
numlist에서 3의 배수만을 남긴 [6, 9, 12]를 return합니다.
입출력 예 #2
numlist에서 5의 배수만을 남긴 [10, 5]를 return합니다.
입출력 예 #3
numlist에서 12의 배수만을 남긴 [120, 600, 12, 12]를 return합니다.
1. 문제 분석
- ArrayList 를 생성하고
- 반복하면서 n으로 나눴을 때 나머지가 0인지 판별한다.
- n의 배수인지 판별되면 ArrayList에 담아준 후 answer 배열에 추가해준다.
2. 방법
import java.util.ArrayList;
class Solution {
public int[] solution(int n, int[] numlist) {
ArrayList<Integer> result = new ArrayList<>();
// 배열을 순회하면서 n의 배수인지 확인
for (int i = 0; i < numlist.length; i++) {
int target = numlist[i];
if (target % n == 0) {
result.add(target);
}
}
// ArrayList를 int 배열로 변환
int[] answer = new int[result.size()];
for (int i = 0; i < result.size(); i++) {
answer[i] = result.get(i);
}
return answer;
}
}
3. 느낀점
다른 사람의 풀이를 보니 Stream으로 풀이를 한 케이스가 있길래 코드를 좀 보려고 분석해보았다.
import java.util.Arrays;
class Solution {
public int[] solution(int n, int[] numList) {
return Arrays.stream(numList).filter(value -> value % n == 0).toArray();
}
}
반응형
'알고리즘 > 프로그래머스:LV00' 카테고리의 다른 글
[LV00] OX 퀴즈 (0) | 2023.11.27 |
---|---|
[LV00] 자릿수 더하기 (0) | 2023.11.24 |
[LV00] 문자열 계산하기 (0) | 2023.11.23 |
[LV00] 숨어있는 숫자의 덧셈(1) (1) | 2023.11.20 |
[LV00] 숨어있는 숫자의 덧셈(1) (1) | 2023.11.04 |