[프로그래머스/Lv. 0] 소인수분해
내 코드 (틀림)
import java.util.*;
class Solution {
public int[] solution(int n) {
List<Integer> list = new ArrayList<>();
int k = 2;
while(n != 1) {
if(n % k == 0) {
list.add(k);
n /= k;
} else {
k++;
}
}
int[] answer = new int[list.size()];
for(int i=0 ; i < list.size() ; i++) {
answer[i] = list.get(i);
}
Arrays.sort(answer);
return answer;
}
}
11번째 줄 list.add(k);
를 어디 위치에 써야하는지 조금 갈팡질팡하긴 했다...
그래서 다른 코드들 보고 여차저차 작성하긴 했다만...
answer 배열에서 중복값 제거가 필요했다...
근데 뭔가 자꾸 코드가 길어지는 거 같고..
구글링해도 원하는 결과가 잘 안나오길래 결국 마지막 줄만 더 참고하기로 했다..ㅠ
import java.util.*;
class Solution {
public int[] solution(int n) {
int[] answer = {};
List<Integer> list = new ArrayList<>();
int k = 2;
while(n != 1) {
if(n % k == 0) {
list.add(k);
n /= k;
} else {
k++;
}
}
answer = list.stream().distinct().mapToInt(Integer::intValue).toArray();
return answer;
}
}
19번째 줄...악.. 스트림 이용해야...
✔ .stream()
: 스트림 객체 생성
✔ .distinct()
: 스트림에서 중복값 제거
✔ .mapToInt(Integer::intValue)
: .maptoInt(i -> i)
로 써도 된다. map은 기존의 데이터에서 특정 형태로 수정해 적용한다는 의미! 인데 IntStream으로 바꿔주는 메소드!
✔ .toArray()
: 리스트를 배열로 만듦
Stream API 함수를 더 공부해야겄다 (filter, map, limit, collect 등)
(참고)
✔ 스트림 사용법
[Java] 자바 스트림(Stream) 사용법 및 예제
자바 스트림(Stream) 자바의 스트림(Stream)은 'Java 8'부터 지원되기 시작한 기능이다. 컬렉션에 저장되어 있는 엘리먼트들을 하나씩 순회하면서 처리할 수 있는 코드패턴이다. 람다식과 함께 사용되
hbase.tistory.com
[Java] 스트림(Stream) 이란? 스트림과 컬렉션의 차이점 #내부반복 #외부반복
[Java8] 스트림 (Stream) 기존의 Java에서 컬렉션 데이터를 처리할때 특정 조건에 따라 필터링을 하려면 복잡한 과정을 거쳐야 했습니다. 반면에 SQL 문법의 경우 사용자가 원하는 조건의 데이터 목록
ksr930.tistory.com
✔ 스트림 중간 연산자 (.distinct() 등)
Java - Stream.distinct() 사용 방법 및 예제
Java8에서 도입된 Stream의 distinct()에 대해서 알아보겠습니다. distinct의 사전적 의미는 '구별할 수 있는'입니다. Stream에서 distinct() 메소드는 스트림에서 중복되는 요소들을 모두 제거해주고 새로운
codechacha.com
[Java8] 스트림(Stream) 중간 연산자
중간 연산자filter는 말 그대로 필터링, 증 조건에 맞는 것만 거른다는 것이다.위의 코드에서는 람다식을 이용해서 x로 스트림의 요소를 받고 각 요소에 "o"라는 알파벳이 있는 것들만 거른다. 즉,
velog.io
자바의 정석 - 스트림(Stream) | Integerous DevLog
자바의 정석 - 스트림(Stream) 2018/11/29 자바의 정석(남궁성 저) 2권 학습내용 정리 1. 스트림(Stream) 스트림은 데이터 소스를 추상화하고, 데이터를 다루는데 자주 사용되는 메서드들을 정의해 놓았
ryan-han.com
(다들 깔끔하게 해주셨지만 개인적으로는 이게 정리가 가장 깔끔하신..👍👍)
✔ .toArray()
[JAVA] List 의 toArray() 메서드
List 컨테이너의 인스턴스를 배열(array)로 만드는것이 'toArray' 메서드이다. 하지만 이 메서드 사용에 있어서 아래와같은 아리송한 코드를 자주 봤을 것이다. List<String> stringList = new ArrayList<...
asuraiv.blogspot.com