반응형
나누어 떨어지는 숫자 배열
문제 설명
array의 각 element 중 divisor로 나누어 떨어지는 값을 오름차순으로 정렬한 배열을 반환하는 함수, solution을 작성해주세요.
divisor로 나누어 떨어지는 element가 하나도 없다면 배열에 -1을 담아 반환하세요.
예시
arr | divisor | return |
[5, 9, 7, 10] | 5 | [5, 10] |
[2, 36, 1, 3] | 1 | [1, 2, 3, 36] |
[3,2,6] | 10 | [-1] |
코드 해석 및 전체 코드
1. 배열 길이를 구하기
2. 나누어 떨어지는 값이 없으면 배열 값 -1 반환
3. 구한 배열 길이 만큼 배열 선언
4. 나누어 떨어지는 값 배열에 저장
5. 정렬
class Solution {
public int[] solution(int[] arr, int divisor) {
int cnt = 0;
for(int i = 0; i < arr.length; i++){
if(arr[i] % divisor == 0) cnt++;
}
if(cnt == 0) {
int[] answer = {-1};
return answer;
}
int[] answer = new int[cnt];
for(int i = 0, j = 0; i < arr.length; i++){
if(arr[i] % divisor == 0) answer[j++] = arr[i];
}
for(int i = 0; i < cnt - 1; i++){
for(int j = 0; j < cnt - 1 - i; j++){
if(answer[j] > answer[j +1]){
int temp = answer[j];
answer[j] = answer[j+1];
answer[j+1] = temp;
}
}
}
return answer;
}
}
첫번째 도전 코드
1. ArrayList 선언 및 divisor로 나누어 떨어지는 값 추가
2. 배열 길이 구하기
3. AraayList 값 배열에 저장
4. 배열 정렬
배열 길이를 구하는 과정에서 정확성 테스트 9번이 통과되지 않았다.....!!@!!@!@!
import java.util.ArrayList;
class Solution {
public int[] solution(int[] arr, int divisor) {
ArrayList<Integer> list = new ArrayList<Integer>();
for(int i = 0; i < arr.length; i++){
if(arr[i] % divisor == 0) list.add(arr[i]);
}
int length = list.size() != 0 ? list.size() : 1;
int[] answer = new int[length];
if(length == 1) {
answer[0] = -1;
return answer;
}
for(int i = 0, j = 0; i < length; i++){
answer[i] = list.get(i);
}
for(int i = 0; i < length - 1; i++){
for(int j = 0; j < length - 1 - i; j++){
if(answer[j] > answer[j +1]){
int temp = answer[j];
answer[j] = answer[j+1];
answer[j+1] = temp;
}
}
}
return answer;
}
}
반응형
'코딩 테스트 > [JAVA] programmers 코딩 테스트 연습' 카테고리의 다른 글
[Programmers/JAVA] 예산 / 프로그래머스 코딩 테스트 연습 (0) | 2021.07.17 |
---|---|
[Programmers/JAVA] 문자열 내 p와 y의 개수 / 프로그래머스 코딩 테스트 연습 (0) | 2021.07.17 |
[Programmers/JAVA] 폰켓몬 / 프로그래머스 코딩 테스트 연습 (0) | 2021.07.16 |
[Programmers/JAVA] 같은 숫자는 싫어 / 프로그래머스 코딩 테스트 연습 (0) | 2021.07.16 |
[Programmers/JAVA] 시저 암호 / 프로그래머스 코딩 테스트 연습 (0) | 2021.07.15 |
댓글