-
728x90
문제 설명
정수 n과 정수 배열 numlist가 매개변수로 주어질 때, numlist에서 n의 배수가 아닌 수들을 제거한 배열을 return하도록 solution 함수를 완성해주세요.
제한사항
- 1 ≤ n ≤ 10,000
- 1 ≤ numlist의 크기 ≤ 100
- 1 ≤ numlist의 원소 ≤ 100,000
답안
import java.util.*; class Solution { public int[] solution(int n, int[] numlist) { int count = 0; for(int val : numlist) { if(val%n==0) count++; } int[] answer = new int[count]; int idx = 0; for(int val : numlist) { if(val%n==0) answer[idx++] = val; } return answer; } }
자바의 배열은 초기화할 때 개수 또는 배열의 원소를 지정해야한다.
이런 점에서는 PHP가 편하긴 하다.아무튼, answer 배열의 길이를 지정하기 위해 먼저 numlist의 원소들을 모두 비교하여 n으로 나눴을 때 나머지가 0인 것의 개수를 계산한다.
그렇게 계산한 count를 참고하여 answer 배열의 길이를 초기화하고 다시 한번 numlist의 원소들을 비교하여 answer 배열에 넣어준다.
for문을 두번 쓰는게 비효율적인것 같아서 다른 풀이들도 확인해봤지만 ArrayList를 쓰는게 아닌 경우엔 이렇게 for문을 두번 돌아서 문제 해결했다.
728x90'algorithm' 카테고리의 다른 글
자바 알고리즘 - 배열의 유사도 (0) 2023.09.01 자바 알고리즘 - 숫자 찾기 (0) 2023.08.31 자바 알고리즘 - 자릿수 더하기 (0) 2023.08.31 자바 알고리즘 - OX 퀴즈 (0) 2023.08.30 자바 알고리즘 - 문자열 안에 문자열 (0) 2023.08.30