Study/데일리 알고리즘

[Programmers/Level1] 나누어 떨어지는 숫자 배열 - JAVA[자바] 2020. 11. 22

Nullsector_1 2020. 11. 22. 15:36

Programmers Level1 문제

연습문제 : 나누어 떨어지는 숫자 배열

사용 언어 : JAVA

 

ArrayList와 sort()를 이용해 쉽게 해결한 문제


문제

programmers.co.kr/learn/courses/30/lessons/12910

 

코딩테스트 연습 - 나누어 떨어지는 숫자 배열

array의 각 element 중 divisor로 나누어 떨어지는 값을 오름차순으로 정렬한 배열을 반환하는 함수, solution을 작성해주세요. divisor로 나누어 떨어지는 element가 하나도 없다면 배열에 -1을 담아 반환하

programmers.co.kr

 

손코딩

 

풀이

ArrayList와 sort를 이용하여 쉽게 해결한 문제이다.

연산을 통해 나누어 떨어지는 숫자가 없어서 answer배열에 아무런 요소가 추가가 되지 않았을 때, -1을 넣어주는 것과

결과를 오름차순으로 나타내기 위해 정렬해주는 조건만 잘 처리해준다면 쉽게 풀 수 있는 문제인 것 같다.

전체 소스 코드

import java.util.*;
class Solution {
	public static ArrayList<Integer> solution(int[] arr, int divisor)  {
		ArrayList<Integer> answer = new ArrayList<Integer>();
        	// arr 정렬
		Arrays.sort(arr);
		// arr배열 내 요소를 차례로 꺼내 divisor와 나머지를 구함
		for(int i=0; i<arr.length; i++) {
			// 만약 나머지가 0이면 
			if((arr[i]%divisor) == 0) {
				//answer 리스트에 저장
				answer.add(arr[i]);
			}
			
		}	
		// 만약 answer의 크기가 0이면
		if(answer.size() == 0) {
			// -1를 리스트에 저장
			answer.add(-1);
		}
	
		return answer; 
		}
}

 

느낀 점

다른 분의 풀이를 보니 lamda식으로 푸셨던데...

lamda식 쓸 줄만 알면 진짜 편해보인다...

공부 해보고싶은데 취업 준비에 연말에 이것저것 할 게 많아서 정신이 없다 ㅠㅠ