ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 34 TIL
    내일배움캠프 2022. 12. 14. 21:03

     

    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개만 풀었네요 이만 마치겠습니다

    '내일배움캠프' 카테고리의 다른 글

    36 TIL  (0) 2022.12.18
    35 TIL  (0) 2022.12.15
    33 TIL  (0) 2022.12.13
    32 TIL  (0) 2022.12.12
    31 TIL  (0) 2022.12.09
Designed by Tistory.