[코딩테스트연습] 코딩테스트 입문 > Lv.0 n의 배수 고르기
2024. 3. 23. 12:13ㆍ코딩 테스트/[프로그래머스] Java
문제 설명
문제 풀이
numlist에서 하나씩 가져와서 n의 배수인지 확인하려고 했다.
class Solution {
public int[] solution(int n, int[] numlist) {
int[] answer = {};
for(int num: numlist){
if(num%n==0) answer.append(num);
}
return answer;
}
}
하지만 아무생각 없이 파이썬 문법마냥 작성해버렸다..
자바에서는 배열에 어떻게 새로운 원소를 추가할까?
방법을 찾아보니 여러가지 방법이 있었다.
그 중 배열을 List로 변환하여 .add()를 사용하는 방법이 있었다.
import java.util.*;
class Solution {
public int[] solution(int n, int[] numlist) {
int[] answer = {};
List <Integer> answerList = new ArrayList <Integer>();
for(int num: numlist){
if(num%n==0){
answerList.add(num);
}
}
answerList.toArray(answer);
return answer;
}
}
하지만 error가 발생했다..
이 에러는 List.toArray() 메서드를 호출할 때 적절한 형식을 사용하지 않아 발생한다.
List.toArray() 메서드는 Object[] 타입의 배열을 인자로 받거나, 제네릭 형식의 배열을 인자로 받을 수 있는데,
int[]은 이러한 형식에 들어맞지 않아서 발생하는 것이다!
import java.util.*;
class Solution {
public int[] solution(int n, int[] numlist) {
List <Integer> answerList = new ArrayList <Integer>();
for(int num: numlist){
if(num%n==0) answerList.add(num);
}
int[] answer = new int[answerList.size()];
for (int i = 0; i < answerList.size(); i++) {
answer[i] = answerList.get(i);
}
return answer;
}
}
따라서 배열에 원소 값을 하나씩 저장해주는 방식으로 작성해보았다.
'코딩 테스트 > [프로그래머스] Java' 카테고리의 다른 글
[코딩테스트연습] 코딩테스트 입문 > Lv.0 n보다 커질 때까지 더하기 (0) | 2024.03.23 |
---|---|
[코딩테스트연습] 코딩테스트 입문 > Lv.0 문자열을 정수로 변환하기 (0) | 2024.03.23 |
[코딩테스트연습] 코딩테스트 입문 > Lv.0 숨어있는 숫자의 덧셈 (1) (0) | 2024.03.21 |
[코딩테스트연습] 코딩테스트 입문 > Lv.0 제곱수 판별하기 (0) | 2024.03.21 |
[코딩테스트연습] 코딩데스트 입문 > Lv.0 모음 제거 (0) | 2024.03.21 |