문제
https://school.programmers.co.kr/learn/courses/30/lessons/120897
풀이
풀이1. cnt 변수로 answer 배열(int[]를 사용한 정적 배열)의 길이를 먼저 구한 후 answer 배열에 n의 약수를 구해 넣기
풀이2. List 배열인 동적 배열의 사용으로 배열 길이를 정하지 않고 바로 배열에 추가하기
단, solution 함수에서의 타입이 List<> 여야 한다.
풀이3. solution 함수에서의 타입을 int[]로 사용할때 동적배열인 List<>를 사용해 풀 수 있는 방법
ArrayList<>배열로 n의 약수를 구해 배열에 넣은 후, 반환할때 answer.stream().mapToInt(x -> x).toArray(); 를 사용하여 ArrayList<>를 int[] 로 변환한다.
코드
풀이1.
class Solution {
public int[] solution(int n) {
int cnt =0;
for(int i=1; i<=n; i++){
if(n%i==0){
cnt++;
}
}
int[] answer = new int[cnt];
int idx = 0;
for(int i=1; i<=n; i++){
if(n%i==0){
answer[idx++] = i;
}
}
return answer;
}
}
풀이2.
import java.util.*;
class Solution {
public List<Integer> solution(int n) {
ArrayList<Integer> answer = new ArrayList<>();
for(int i=1; i<=n; i++){
if(n%i==0){
answer.add(i);
}
}
Collections.sort(answer);
return answer;
}
}
풀이3. (다른사람풀이)
import java.util.List;
import java.util.ArrayList;
class Solution {
public int[] solution(int n) {
List<Integer> answer = new ArrayList<>();
for(int i=1; i<=n; i++){
if(n % i == 0){
answer.add(i);
}
}
return answer.stream().mapToInt(x -> x).toArray();
}
}
'하루하루 > 프로그래머스 문제풀이' 카테고리의 다른 글
[Lv.0 - Java] 120886. A로 B 만들기 (0) | 2023.12.18 |
---|---|
[Lv.0 - Java] 120904. 숫자 찾기 (0) | 2023.12.15 |
[Lv.0 - Java] 120834. 외계행성의 나이 (0) | 2023.12.13 |
[Lv.0 - Java] 120815. 피자 나눠 먹기 (2) (0) | 2023.12.12 |
[Lv.0 - Java] 120844. 배열 회전시키기 (0) | 2023.12.11 |