프로그래머스 Lv.1 - 12910 나누어 떨어지는 숫자 배열 문제 풀이
문제 설명
array의 각 element 중 divisor로 나누어 떨어지는 값을 오름차순으로 정렬한 배열을 반환하는 함수, solution을 작성해주세요.
divisor로 나누어 떨어지는 element가 하나도 없다면 배열에 -1을 담아 반환하세요.
문제의 자세한 내용은 해당 링크를 통해 확인 : 문제 링크
풀이 코드
import java.util.Arrays;
class Solution {
public int[] solution(int[] arr, int divisor) {
int[] answer = Arrays.stream(arr)
.filter(i -> i % divisor == 0)
.sorted()
.toArray();
return answer.length == 0 ? new int[]{-1} : answer;
}
}
문제 해결 전략
이라 쓰고 문제를 보고서 어떻게 풀면 될까?에 대한 생각을 정리한 항목
간단한 문제이기 때문에 어떻게 구현하면 간단할까?에 대한 생각을 하며 푼 문제
스트림을 이용하면 한 번에 풀릴 것 같아서 스트림으로 구현 시작
filter()를 사용하여 divisor로 나누어 떨어지는 요소만 추출
이후 추출된 요소들을 sorted()를 사용하여 오름차순으로 정렬
이후 정렬된 요소들을 toArray()를 사용하여 list로 반환
이렇게 만들어진 배열의 길이가 0이라면 정확히 나누어 떨어지는 수가 없는 것
따라서 삼항연산자를 사용하여 길이가 0인 경우 "-1"을 요소로 갖는 배열 반환
길이가 0이 아닌 경우라면 stream을 통해 만들어진 배열을 그대로 반환하여 해결
코드를 업로드해 둔 깃 허브
'Develop > Algorithm' 카테고리의 다른 글
프로그래머스 Lv.2 - 42586 기능개발 (0) | 2022.07.26 |
---|---|
프로그래머스 Lv.1 - 77484 로또의 최고 순위와 최저 순위 (0) | 2022.07.26 |
프로그래머스 Lv.1 - 92334 신고 결과 받기 (0) | 2022.07.26 |
프로그래머스 Lv.2 - 60057 문자열 압축 (0) | 2022.07.26 |
백준 실버V - 17478 재귀함수가 뭔가요? (0) | 2022.07.26 |