[Programmers] Lv0 n의 배수 고르기 Java
2023. 1. 24. 22:00ㆍCS/자료구조 & 알고리즘
728x90
문제 출처
[프로그래머스 코딩 테스트 연습]
https://school.programmers.co.kr/learn/courses/30/lessons/120905
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
문제 풀이
문제는 numlist에서 n의 배수만 걸러내는 것이다.
거의 모든 프로그래밍 언어는 나머지 연산자를 제공해 준다.
n의 배수라는 말은 어떤 수가 n으로 나누어 떨어지는 수라고 할 수 있다.
이를 자바로 표현하면 다음과 같다.
if ( num % n == 0) { // n의 배수일때 실행되는 코드 }
이를 배열로 구현한다면 배열을 여러 번 생성해야 하므로 이를 해결하기 위해서 ArrayList를 이용한다.
ArrayList는 제네릭을 지원해주기 때문에 <> 안에 클래스 타입을 적으면 된다. 이때 int가 아닌 Integer을 이용해야 된다.
ArrayList의 길이는 가변적이므로 최대 길이를 신경을 쓰지 않아도 된다.
ArrayList에 요소를 추가하려면 add(Object)를 이용하면 된다.
ArrayList<Integer> numList = new ArrayList<>(); for (int num : numlist) if (num % n == 0) numList.add(num);
이후 ArrayList를 Intger에서 int로 변환해 주면 된다.
소스 코드
import java.util.ArrayList; public class Solution { public int[] solution(int n, int[] numlist) { ArrayList<Integer> numList = new ArrayList<>(); for (int num : numlist) if (num % n == 0) numList.add(num); return numList.stream().mapToInt(i->i).toArray(); } }
728x90
'CS > 자료구조 & 알고리즘' 카테고리의 다른 글
[Programmers] Lv0 겹치는 선분의 길이 Java (0) | 2023.01.26 |
---|---|
[Programmers] Lv0 평행 Java (0) | 2023.01.25 |
[Programmers] Lv0 자릿수 더하기 Java (0) | 2023.01.23 |
[Programmers] Lv0 OX 퀴즈 Java (0) | 2023.01.23 |
[Programmers] Lv0 문자열안에 문자열 Java (2) | 2023.01.22 |