정수 n
이 매개변수로 주어질 때, n
이하의 홀수가 오름차순으로 담긴 배열을 return하도록 solution 함수를 완성해주세요.
n
≤ 100n | result |
---|---|
10 | [1, 3, 5, 7, 9] |
15 | [1, 3, 5, 7, 9, 11, 13, 15] |
입출력 #1
10 이하의 홀수가 담긴 배열 [1, 3, 5, 7, 9]를 return합니다.
입출력 #2
15 이하의 홀수가 담긴 배열 [1, 3, 5, 7, 9, 11, 13, 15]를 return합니다.
class Solution {
public int[] solution(int n) {
int[] answer = (n%2==0) ? new int[n/2] : new int[n/2+1];
for(int i=0; i< answer.length; i++){
answer[i] = i*2+1;
}
return answer;
}
}
주말에 레벨 1에서 정답률 60% 가니까 생각했던 것보다 난이도가 있어서 두 문제 실패해서 못올렸었다. 개념 공부 위해 책 읽으면서 해야할 수준에 도달 한 듯하다.
짝수는 싫어요 문제 풀어봤냐는 질문에 풀기 시작했데 레벨 0은 난이도가 너무 낮을꺼 같아 외면했던 애들인데 얘네는 하루 2문제씩 후딱 풀어버리면 좋을꺼같다.
참고사이트 : https://blog.naver.com/ding-dong/221386518751
import java.util.stream.IntStream;
class Solution {
public int[] solution(int n) {
return IntStream.rangeClosed(0, n)
.filter(value -> value % 2 == 1)
.toArray();
}
}
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(i % 2 == 1){
answer.add(i);
}
}
return answer.stream().mapToInt(x -> x).toArray();
}
}
Java에서 스트림(Stream)은 컬렉션, 배열, I/O 자원 등의 데이터 소스로부터 데이터를 읽어오거나 쓸 때 사용하는 추상화된 개념입니다. 스트림은 데이터를 처리하는데 사용되는 함수형 인터페이스들과 함께 사용되어 함수형 프로그래밍을 가능하게 합니다.
스트림은 크게 다음과 같은 특징을 갖습니다:
스트림은 데이터를 저장하지 않습니다. 대신, 데이터 소스로부터 실시간으로 읽어오며, 이에 대한 중간 연산(intermediate operation)과 최종 연산(terminal operation)을 수행하여 결과를 출력합니다.
스트림은 일회용입니다. 한 번 사용하면 소비된 스트림은 다시 사용할 수 없습니다.
스트림은 지연 연산(lazy evaluation)을 수행합니다. 중간 연산들은 실제 데이터가 처리되기 전에 수행되지 않으며, 최종 연산이 호출될 때까지 기다립니다.
스트림은 병렬 처리(parallel processing)를 지원합니다. 컬렉션의 요소를 병렬로 처리하여 처리 속도를 높일 수 있습니다.
스트림은 크게 생성, 중간 연산, 최종 연산으로 구성됩니다. 생성은 데이터 소스로부터 스트림을 생성하는 것이며, 중간 연산은 데이터를 가공하거나 걸러내는 등의 작업을 수행하고, 최종 연산은 결과를 출력하는 작업을 수행합니다.
스트림의 사용은 다음과 같이 이루어집니다:
List<String> myList = Arrays.asList("a1", "a2", "b1", "c2", "c1");
myList
.stream()
.filter(s -> s.startsWith("c"))
.map(String::toUpperCase)
.sorted()
.forEach(System.out::println);
이 코드는 myList의 요소 중 "c"로 시작하는 문자열만 걸러내어 대문자로 변환한 뒤, 오름차순으로 정렬하여 출력하는 코드입니다.
참고사이트: https://ryan-han.com/post/dev/java-stream/
참고사이트: https://school.programmers.co.kr/learn/courses/30/lessons/120813/solution_groups?language=java