문제설명
array의 각 element 중 divisor로 나누어 떨어지는 값을 오름차순으로 정렬한 배열을 반환하는 함수, solution을 작성해주세요.
divisor로 나누어 떨어지는 element가 하나도 없다면 배열에 -1을 담아 반환하세요.제한사항
- arr은 자연수를 담은 배열입니다.
- 정수 i, j에 대해 i ≠ j 이면 arr[i] ≠ arr[j] 입니다.
- divisor는 자연수입니다.
- array는 길이 1 이상인 배열입니다.
입출력 예
입출력 예#1
arr의 원소 중 5로 나누어 떨어지는 원소는 5와 10입니다. 따라서 [5, 10]을 리턴합니다.
입출력 예#2
arr의 모든 원소는 1으로 나누어 떨어집니다. 원소를 오름차순으로 정렬해 [1, 2, 3, 36]을 리턴합니다.
입출력 예#3
3, 2, 6은 10으로 나누어 떨어지지 않습니다. 나누어 떨어지는 원소가 없으므로 [-1]을 리턴합니다.
코드 설명
JAVA 코드
import java.util.*;
: java.util 패키지의 클래스들을 사용하기 위해 필요한 import 문입니다.
public ArrayList<Integer> solution(int[] arr, int divisor) { ... }
: solution 메서드의 선언으로, int 배열 arr과 정수 divisor를 입력으로 받아 ArrayList<Integer>를 반환하는 메서드입니다.
ArrayList<Integer> answer = new ArrayList<>();
: 결과를 저장할 ArrayList를 생성합니다.
Arrays.sort(arr);
: sort()함수를 이용하여 arr를 오름차순으로 정렬합니다.
for(int i : arr){ ... }
: 정렬된 배열 arr의 각 요소 i에 대해서 반복문을 실행합니다.
if(i%divisor == 0) answer.add(i);
: 현재 요소 i가 divisor로 나누어 떨어지면, answer 리스트에 add()함수를 이용하여 추가합니다.
if(answer.size() == 0) answer.add(-1);
: 만약 answer 리스트의 크기가 0이라면, -1을 추가합니다. 이는 결과 리스트가 비어있을 경우에 해당합니다.
return answer;
: 최종적으로 구성된 answer 리스트를 반환합니다.
JS 코드
const answer = arr.filter(v => v%divisor == 0);
: arr 배열에서 divisor로 나누어 떨어지는 요소들을 필터링하여 answer 배열에 저장합니다. filter() 함수를 사용하여 조건을 만족하는 요소만 추출합니다.
return answer.length == 0 ? [-1] : answer.sort((a,b) => a-b);
: answer 배열의 길이가 0인 경우 -1을 포함한 배열을 반환하고, 그렇지 않은 경우 answer 배열을 오름차순으로 정렬한 후 반환합니다. (a,b) => a-b는 오름차순 정렬 함수입니다.
삼항 연산자(condition ? value_if_true : value_if_false)를 사용하여 조건에 따라 다른 값을 반환합니다.
소스코드&결과
JAVA 코드
import java.util.*;
class Solution {
public ArrayList<Integer> solution(int[] arr, int divisor) {
ArrayList<Integer> answer = new ArrayList<>();
Arrays.sort(arr);
for(int i : arr){
if(i%divisor == 0) answer.add(i);
}
if(answer.size() == 0) answer.add(-1);
return answer;
}
}
JS 코드
function solution(arr, divisor) {
const answer = arr.filter(v => v%divisor == 0);
return answer.length == 0 ? [-1] : answer.sort((a,b) => a-b);
}
실행결과
'Coding Test > 프로그래머스' 카테고리의 다른 글
[MySQL] 여러 기준으로 정렬하기 (0) | 2023.11.15 |
---|---|
[MySQL] 나이 정보가 없는 회원 수 구하기 (2) | 2023.11.01 |
[JavaScript] 배열 만들기 3 (0) | 2023.08.15 |
[JavaScript] 배열의 원소 삭제하기 (2) | 2023.08.14 |
[JavaScript] 순서 바꾸기 (2) | 2023.08.11 |