728x90
코딩테스트 연습 - 짝수는 싫어요 | 프로그래머스 스쿨 (programmers.co.kr)
간단하게 풀었다.
import java.util.ArrayList;
class Solution {
public static ArrayList solution(int n) {
ArrayList<Integer> answer = new ArrayList();
for (int i = 1; i <= n; i++) {
if (i % 2 != 0) {
answer.add(i);
}
}
return answer;
}
}
이런 문제들은 항상 배열로 리턴을 하는데 나는 ArrayList로 바꾸곤 했다.
근데 다른 분 코드 중에 배열로 리턴하는 방법이 있어서 알아두려고 한다.
import java.util.ArrayList;
class Solution {
public static int[] solution(int n) {
ArrayList<Integer> answer = new ArrayList();
for (int i = 1; i <= n; i++) {
if (i % 2 != 0) {
answer.add(i);
}
}
return answer.stream().mapToInt(x -> x).toArray();
}
}
스트림 재밌군 ..!
mapToInt는 처음 보는 녀석이라 좀 찾아봤다.
일단 map은 중개연산으로 map안의 연산을 각 요소별로 수행하는 메서드다.
mapToInt(), mapToLont(), mapToDouble() 는 기본형 특화 스트림으로 각각 IntStream,LongStream,DoubleStream이 반환된다. 기본형, primitive type에 특화된 Stream 이라는 의미이다.
* map() 을 수행 하면 반환값으로 Stream<T>가 반환되어야 하기 때문에, 무조건 Wrapper class로 박싱이 될 수 밖에 없다.불필요한 박싱 연산을 줄이기 위해 나온 것이 기본형 특화 스트림.
728x90
'알고리즘 > 프로그래머스' 카테고리의 다른 글
(프로그래머스/자바) 힌트문제2 04. 문자열 - 프로그래머스 : 문자열안에 문자열 (0) | 2023.07.25 |
---|---|
(프로그래머스/자바) 힌트문제2 02. 배열 - 프로그래머스 : 배열 회전시키기 (0) | 2023.07.25 |
(프로그래머스/자바) 힌트문제2 01. 해시테이블 - 프로그래머스 : 한 번만 등장한 문자 (0) | 2023.07.25 |
(프로그래머스/자바) 힌트문제1 02. 문자열 - 프로그래머스 : 숫자 문자열과 영단어 (0) | 2023.07.18 |