반응형
문제 설명
정수 n과 정수 배열 numlist가 매개변수로 주어질 때, numlist에서 n의 배수가 아닌 수들을 제거한 배열을 return하도록 solution 함수를 완성해주세요.
제한사항
- 1 ≤ n ≤ 10,000
- 1 ≤ numlist의 크기 ≤ 100
- 1 ≤ numlist의 원소 ≤ 100,000
첫 시도에서 1번째 케이스가 런타임 에러가 나타났다.
런타임 에러가 나타난 이유는 n의 배수에 해당하는 요소가 없을 시에 빈 int 배열만 남게 되는데, 그걸 String으로 바꾸려고 하다 보니까 나타나는 오류였던 것 같았다.
계속 StringBuffer 객체를 사용하면서 풀고 있는데, 이것 때문에 코드가 길어지는 것 같은 기분이 든다.
다음 문제부터는 최대한 안쓰고 해보도록 해야 겠다.
다 풀고 나서 다른 사람들의 풀이를 봤더니 전부 다 ArrayList를 사용하고 있었다.. ArrayList는
List.add(numlist[i]);
이와 같이 리스트에 추가할 수 있었다.(ArrayList는 길이가 제한되지 않기 때문)
앞으로는 ArrayList로 풀어야 겠다
class Solution {
public int[] solution(int n, int[] numlist) {
//아마 빈 배열이 되었을때가 런타임 에러인것 같다
int[] answer = {};
int count = 0;
StringBuffer sb = new StringBuffer();
for(int i = 0; i<numlist.length;i++){
if(numlist[i]%n==0){
count++;
sb.append(Integer.toString(numlist[i])+" ");
}
}
if(count==0)return answer;
answer = new int[count];
String str = sb.toString();
String[] str_arr = str.split(" ");
for(int i = 0;i<str_arr.length;i++){
answer[i] = Integer.parseInt(str_arr[i]);
}
return answer;
}
}
반응형
'코딩테스트 > Programmers_LV0' 카테고리의 다른 글
Programmers_JAVA_배열의 유사도 (0) | 2022.11.15 |
---|---|
Programmers_JAVA_숫자찾기 (0) | 2022.11.15 |
Programmers_JAVA_자릿수 더하기 (0) | 2022.11.10 |
Programmers_JAVA_OX퀴즈 (0) | 2022.11.10 |
Programmers_JAVA_문자열 안에 문자열 (0) | 2022.11.10 |