inblog logo
|
silver
    알고리즘문제풀기

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

    silver's avatar
    silver
    Dec 23, 2024
    [알고리즘문제풀기] 약수 구하기
    Contents
    문제내가 작성한 정답다른 사람들이 작성한 정답

    문제

    school.programmers.co.kr
    https://school.programmers.co.kr/learn/courses/30/lessons/120897

    내가 작성한 정답

    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

    RSS·Powered by Inblog