1차 시도
class Solution {
public int[] solution(int[] arr, int divisor) {
int cnt = 0;
int j = 0;
for (int i = 0; i < arr.length; i++) {
if (arr[i] % divisor == 0) {
cnt++;
}
if (cnt == 0) {
int[] answer = {-1};
return answer;
}
}
// result 배열의 크기 구하기
int[]answer = new int[cnt];
for (int i = 0; i < arr.length; i++) {
if (arr[i] % divisor == 0) {
answer[j] = arr[i];
j++;
}
}
Arrays.sort(answer);
return answer;
}
}
// 구한 크기로 for문 돌면서 arr[i]번째 값을 answer에 값에 넣기
2차 시도
import java.util.ArrayList;
import java.util.Arrays;
class Solution {
public int[] solution(int[] arr, int divisor) {
int answer[] = {};
ArrayList<Integer> tmp = new ArrayList<Integer>();
for (int i = 0; i < arr.length; i++) {
if (arr[i] % divisor == 0) {
tmp.add(arr[i]);
}
}
if (tmp.isEmpty()){
tmp.add(-1);
}
answer = new int[tmp.size()];
for (int i = 0; i <tmp.size(); i++){
answer[i] = tmp.get(i);
}
Arrays.sort(answer);
return answer;
}
}
👍 내생각
왜 자꾸 코드 실행은 되는데 제출 후 채점하면 오류가 날까
이 문제 말고 다른 문제들도 실행은 되는데 채점은 안된다
for문을 사용해서 각 배열/ArrayList를 돌면서 divisor이랑 나눠지는지 확인하고 true면 result 배열/ArrayList에 추가할 수 있도록 하였다.
🤔배운내용
for문 쓰는게 그래도 어느정도 익숙해지고 있는거 같다
아직 다중 for문은 조금 헷갈리기는 한다
2차시도 때는 배열에 별도로 값을 추가해주는 것이 아니라 ArrayList를 활용해서 문제를 풀었다
배열은 사이즈가 정해져있기 때문에 데이터를 마음대로 추가할 수 없으나 ArrayList는 add 매서드를 활용해서 추가 가능하다.
ArrayList 자체에 sort를 사용할 수 없으니, tmp(ArrayList)를 만들어 값들을 tmp에 저장해놓고, 저장된 값을 다시 answer이라는 배열에 추가하는 방식으로 구현했다.
import java.util.Arrays;
import java.util.Arrays;
요거를 맨 위에 안 써줘서 한 10분동안 내 코드를 의심하는 시간을 가졌다..