티스토리 뷰

728x90
반응형

문제 요약

문제풀이

 이번 문제는 간단한 구현문제이다. 구현은 아래와 같이 하면된다.

  1. 2차원 리스트를 선언한다.
  2. 각 리스트 1행부터 탐색해서 num이 있는지 확인한다.
  3. 없으면 없는 행에 추가한다.
  4. 리스트 각 행마다 탐색했는데 다 있으면 새로 행을 추가해서 num을 담는다.

이렇게 구현하면 시간 복잡도는 nums 개수 탐색하는것과 리스트 포함하는지 확인 하기 때문에 O(N ^ 2)만큼 나온다.

Code

Python

class Solution(object):
    def findMatrix(self, nums):
        result =[[]]

        for num in nums:
            size = len(result)
            flag = True # 새로 리스트 추가 여부
            for i in range(size):
                # 현재 위치에서 num이 없을 경우 추가한다.
                if(num not in set(result[i]) and flag):
                    flag = False
                    result[i].append(num)
                    break
            # 담을 위치 없을 경우 새로 리스트 추가해서 담는다.
            if flag:
                result.append([num])

        return result

Java

class Solution {
    public List<List<Integer>> findMatrix(int[] nums) {
        List<List<Integer>> result = new ArrayList<>();
        result.add(new ArrayList<>());

        Arrays.stream(nums).forEach(num -> {
            int size = result.size();
            boolean flag = true; // 새로 리스트 추가 여부

            for (int i = 0; i < size; i++) {
                // 현재 위치에서 num이 없을 경우 추가한다.
                if (!result.get(i).contains(num) && flag){
                    flag = false;
                    result.get(i).add(num);
                }
            }
            // 담을 위치 없을 경우 새로 리스트 추가해서 담는다.
            if(flag){
                result.add(new ArrayList<>());
                result.get(size).add(num);
            }
        });

        return result;
    }
}
728x90
반응형
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/10   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
글 보관함