티스토리 뷰
알고리즘/Leetcode
[Leetcode]2610. Convert an Array Into a 2D Array With Conditions
응애~ 개발자 2024. 9. 28. 02:25728x90
반응형
문제 요약
- 알고리즘 분류: Array, 구현
- 난이도: Medium
- 문제내용:
- nums 배열/리스트를 준다.
- nums에 아래조건하에 2차원 리스트로 변경한것을 반환 해야한다..
- 각 리스트에 중복된 숫자가 없어야 한다.
- 사이트 주소: https://leetcode.com/problems/convert-an-array-into-a-2d-array-with-conditions/description/
문제풀이
이번 문제는 간단한 구현문제이다. 구현은 아래와 같이 하면된다.
- 2차원 리스트를 선언한다.
- 각 리스트 1행부터 탐색해서 num이 있는지 확인한다.
- 없으면 없는 행에 추가한다.
- 리스트 각 행마다 탐색했는데 다 있으면 새로 행을 추가해서 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
반응형
'알고리즘 > Leetcode' 카테고리의 다른 글
[Leetcode]654. Maximum Binary Tree (0) | 2024.10.05 |
---|---|
[Leetcode]826. Most Profit Assigning Work (0) | 2024.10.02 |
[Leetcode]1007. Minimum Domino Rotations For Equal Row (0) | 2024.09.23 |
[Leetcode]3271. Hash Divided String (0) | 2024.09.21 |
[Leetcode]2181. Merge Nodes in Between Zeros (0) | 2024.08.30 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 구현
- 이론
- 동적 계획법
- level2
- 동적계획법
- spring-boot
- JSCODE
- BFS
- 백준
- LeetCode
- 문자열
- BaekJoon
- 자바
- Programmerse
- 알고리즘
- DFS
- 그래프
- 수학
- 배열
- DP
- 조합
- Greedy
- 파이썬
- 재귀호출
- Python
- 누적합
- 그리디
- 넓이 우선 탐색
- java
- 백트레킹
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함