프로그래머스 코딩테스트 입문 0단계 문제입니다
https://school.programmers.co.kr/learn/courses/30/lessons/120905
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
📢 문제 설명
정수 n과 정수 배열 numlist가 매개변수로 주어질 때, numlist에서 n의 배수가 아닌 수들을 제거한 배열을 return하도록 solution 함수를 완성해주세요.
⭕ 정답 코드
1. 동적 배열 List 사용하기
import java.util.*;
class Solution {
public int[] solution(int n, int[] numlist) {
List<Integer> list = new ArrayList<>();
for(int i = 0; i<numlist.length; i++)
if(numlist[i]%n==0)
list.add(numlist[i]);
return list.stream().mapToInt(i->i).toArray();
}
}
🔍 해설
Integer List를 생성한다
반복문 속에서 numlist의 요소들이 n으로 나뉘어지면
List에 해당 요소를 추가시켜준다
List를 Stream으로 바꿨다가 배열로 바꿔 제출한다
2. Stream filter 사용하기
return Arrays.stream(numlist).filter(i -> i%n==0).toArray();
🔍 해설
Arrays.stream() → int 배열을 stream으로 변환시키고
filter() → n으로 나뉘어지는 요소만 stream에 남긴다
toArray() → 배열로 바꿔 제출한다
⚠️ 직접 풀어본 처음 풀이
🔗 코드
import java.util.*;
class Solution {
public int[] solution(int n, int[] numlist) {
List<Integer> list = new ArrayList<>();
for(int i = 0; i<numlist.length; i++)
if(numlist[i]%n==0)
list.add(numlist[i]);
return list.stream().mapToInt(i->i).toArray();
}
}
정답 코드의 1번과 같은 코드이다
🔍 해설
Integer List를 생성한다
반복문 속에서 numlist의 요소들이 n으로 나뉘어지면
List에 해당 요소를 추가시켜준다
List를 Stream으로 바꿨다가 배열로 바꿔 제출한다
📒 기억하고 갈 문법
Stream의 filter() 메서드는 조건에 맞지 않는 요소는 없애준다
toArray()메서드는 Stream을 배열로 반환시켜준다
'코딩테스트 스터디' 카테고리의 다른 글
코딩테스트 연습 - 문자열 정렬하기 (2) (JAVA) (0) | 2023.01.11 |
---|---|
코딩테스트 연습 - 제곱수 판별하기 (JAVA) (0) | 2023.01.11 |
코딩테스트 연습 - 약수 구하기 (JAVA) (0) | 2023.01.06 |
코딩테스트 연습 - 7의 개수 (JAVA) (0) | 2023.01.06 |
코딩테스트 연습 - 다음에 올 숫자 (JAVA) (0) | 2022.12.28 |