[알고리즘문제풀기] 약수 구하기

silver's avatar
Dec 23, 2024
[알고리즘문제풀기] 약수 구하기

문제

내가 작성한 정답

ArrayList → Array

import java.util.ArrayList; import java.util.List; class Solution { public int[] solution(int n) { List<Integer> a = new ArrayList<>(); for(int i=1; i<=n; i++){ if(n%i==0){ a.add(i); } } return a.stream().mapToInt(i->i).toArray(); } }
 
//streamAPI사용하지 않고 ArrayList -> Array로 변환 int[] answer = new int[a.size()]; for(int i = 0; i<a.size(); i++){ answer[i] = a.get(i); } return answer; } }
notion image
 
💡
int[] answer = {}; - 빈 배열을 선언
int[] answer 크기를 초기화 하지 않고 넣으면 배열이 비어있어 배열의 인덱스가 배열의 크기를 초과하여 오류가 발생한다.

StreamAPI

import java.util.stream.IntStream; class Solution { public int[] solution(int n) { return IntStream.rangeClosed(1, n) .filter(i -> n%i == 0) .toArray(); } }

다른 사람들이 작성한 정답

ArrayList 사용하지 않음

class Solution { public int[] solution(int n) { int[] answer = new int[n]; int cnt = 0; for (int i = 1; i <= n; i++) { if (n % i == 0) { //answer[cnt] = i; cnt++; } } answer = new int[cnt]; cnt = 0; for (int i = 1; i <= n; i++) { if (n % i == 0) { answer[cnt] = i; cnt++; } } return answer; } }
Share article

silver