CodingTest

프로그레머스 - 약수 구하기 (JAVA)

쩡선영 2023. 1. 5. 21:42

프로그레머스 0단계 약수 구하기 문제 입니다!

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

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

● 문제설명

정수 n이 매개변수로 주어질 때, n의 약수를 오름차순으로 담은 배열을 return하도록 solution 함수를 완성해주세요.

<제안사항>

1) 1<=n<=10,000

 

● 내가 직접 짜본 코드

import java.util.ArrayList;
class Solution {
    public ArrayList<Integer> solution(int n) {
        ArrayList<Integer> answer = new ArrayList<Integer>();
        for(int i=1; i<=n; i++){
            if(n%i==0){
                answer.add(i);
            }
        }
        return (answer);
    }
}

 

 

● 문제설명

1) arraylist를 사용하여 answer 배열을 선언해 주고

2) n과 i를 나눈 나머지가 0일때

3) add메소드를 사용하여 answer에 i를 하나씩 넣어줬습니다

 

● 나애  Arraylist...

제가 arraylist에 대한 썰이 하나 있는데요! 저번 자바 프로젝트 하면서 처음으로 arraylist에 접해봤습니다.

이번 문제를 보자마자 딱 원하는 만큼의 배열 크기로, 간편하게 문제를 해결할 수 없을까?

생각을 해보니 arraylist가 딱 떠오르더군요! 

근데 오랜만에 다시 써보려니 까먹은 부분이 있어서 구글링에 조금 도움 받아서 문제를 해결해 봤습니다 ㅎㅎ

이제 더이상 까먹지 않게 arraylist를 영깅이 방식으로 정리해볼게요!

 

 

● Arraylist

arraylist와 일반 배열의 가장 큰 차이점은 크기입니다!

일반 배열은 크기가 고정되어 있는 반면에 arraylist는 배열 크기를 마음대로 조절할 수 있죠

 

먼저 import.java.util.ArrayList; 라는 자바라이브러리를 추가해줘야 합니다.

그 다음 ArrayList<자료형> 변수명 = new ArrayList<자료형>(); 으로 arraylist를 선언해 줄 수 있습니다

 

add() 메소드를 사용하면 기본적으로 리스트의 가장 끝에 값이 추가됩니다!

 

이걸 하면서 구글링을 더 해보니까 set라는 메소드도 있군요!

set()를 사용하면 원하는 index에 값을 마음대로 바꿀 수 있습니다.

set(바꿀 index, 넣을 값);  << 이렇게 사용해주면 됩니다!!

 

 

긴 블로그 읽어주셔서 감사하고 하트 ... 눌러줘요 ㅎㅎ