취업 및 이직 준비/코딩테스트 준비
프로그래머스 자바 (n 의 배수 고르기) 코딩테스트 문제
code2772
2023. 3. 19. 14:33
728x90
반응형
✔ 방법1
import java.util.Arrays;
class Solution {
public int[] solution(int n, int[] numList) {
return Arrays.stream(numList).filter(v -> v % n == 0).toArray();
}
}
1. Arrays를 임포트 해주기
2. .stream(numlist) 에서 뽑겠다.
3. .filter(v -> v % n == 0) 필터를 이용하여 조건에 맞는걸 뽑겠다. 조건은 n으로 나눈 경우 0
4. .toArray() - List 컨테이너의 인스턴스를 배열(array)로 만드는것이 'toArray' 메서드
###
new ArrayList<>() - 컬렉션 생성 시, 새로운 주소값으로 할당하기 위한 용도
new ArrayList<>()는 할 수 있고, Arrays.asList() 할 수 없다
Arrays.asList()는 고정된 List다. List 원소를 추가 할 수도, 삭제할 수도 없다.
✔ 방법2
class Solution {
public int[] solution(int n, int[] numlist) {
int count = 0;
for(int i=0; i<numlist.length; i++) {
if(numlist[i]%n==0){
count++;
}
}
int[] answer = new int[count];
int index=0;
for(int i=0; i<numlist.length; i++) {
if(numlist[i]%n==0){
answer[index]=numlist[i];
index++;
}
}
return answer;
}
}
1. numlist의 길이만큼 반복을 하고
2. n으로 나눈 나머지가 0인 것 만큼 카운트 +하고
3. 그 만큼의 배열을 새로 만든다.
4. 다시 numlist의 길이만큼 반복을 하고
5. n으로 나눈 나머지가 0인 것을 새로 만든 배열에 순서데로 넣어준다.
6. 조건을 만족하면 새 배열의 index를 한칸땅겨 반복하여 조건을 만족하는 것을 배열에 추가하여 값을 도출한다.
반응형