728x90
반응형
[프로그래머스] 코딩테스트 연습 -> 코딩테스트 입문 -> 소인수 분해
https://school.programmers.co.kr/learn/courses/30/lessons/120852
해결 과정
이 문제는 먼저 배열의 크기를 짐작하기 힘들기 때문에 ArrayList를 사용하여 풀어준다.
Integer형 ArrayList 배열 answer을 선언해주고, 반복문을 돌아보자
for 문에서 i는 2부터 시작하고, while문을 돌면서 만약 n%i == 0일 때 배열에 i 값을 넣기 전에
우선 answer에 i가 있는지 없는지를 판단해야 하므로,
.contains() 를 이용하여 만약 들어있지 않다면 answer에 i 값을 넣어주는 형태로 진행한다.
그리고 그 n을 i로 나눈 값을 다시 n으로 만들어주고 다시 for문 전체를 반복해주면 된다.
소스 코드
import java.util.*;
class Solution {
public ArrayList solution(int n) {
ArrayList<Integer> answer = new ArrayList<>();
for(int i = 2; i <= n; i++){
while(n%i == 0){
if(!answer.contains(i))
answer.add(i);
n /= i;
}
}
return answer;
}
}
728x90
반응형
'JAVA > Programmers' 카테고리의 다른 글
JAVA 프로그래머스 [숨어있는 숫자의 덧셈 (1)] 자바 Lv.0 (0) | 2023.06.02 |
---|---|
JAVA 프로그래머스 [모음 제거] 자바 Lv.0 (0) | 2023.06.02 |
JAVA 프로그래머스 [문자열 정렬하기 (1)] 자바 Lv.0 (0) | 2023.06.02 |
JAVA 프로그래머스 [최댓값 만들기 (1)] 자바 Lv.0 (0) | 2023.06.01 |
JAVA 프로그래머스 [주사위의 개수] 자바 Lv.0 (0) | 2023.06.01 |
댓글