-
JavaSpring 심화 강의를 듣다가 알고리즘을 완벽히 이해할 수 있으면 앞으로의 강의,
프로잭트를 진행함에 있어서 좋겠다 생각이 갑자기 들어서 진도표에 제공된 링크의
알고리즘을 완벽 이해하려 노력했습니다. 어렵네요 ....
( 1 ) n의 배수
import java.util.ArrayList; class Solution { public int[] solution(int n, int[] numlist) { ArrayList<Integer> arrayList = new ArrayList<>(); for (int num : numlist) { // num 에 numlist를 하나씩 넣음 if (num % n == 0){ arrayList.add(num); } } int [] answer = new int[arrayList.size]; for ( int i =0; i < answer.length; i++) { answer[i] = arrayList.get(i); } return answer; } }
다른 사람 풀이를 보니 문제가 짧고 간단하여 람다식을 사용해 획기적으로 압축했길래 풀어봄
int [] answer = arrayList.stream().mapToInt(x -> x).toArray();
람다 사용을 위해 .stream() 사용, mapping 하는것까진 이해했으나 ( @ ) 가 뭘 의미하는지는 모르겠음
answer을 ToArray를 이용해 ArrayList로 변환( 2 ) 2차원으로 만들기
class Solution { public int[][] solution(int[] num_list, int n) { int[][] answer = new int[num_list.length/n][n]; int count=0; for(int i=0; i<num_list.length/n; i++) { for(int j=0; j<n; j++) { answer[i][j]=num_list[count]; count++; } } return answer; } }
2차원 배열로 만드는건데 int[][] 를 뭔지 몰랐어서 배열을 하나 추가하는 방식으로 했다가
변경했습니다 시간이 넉넉치 않아 2개만 풀었네요 이만 마치겠습니다