Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- #내일배움단 #코딩프로젝트 #국비지원 #내일배움카드 #스파르타코딩클럽
- 스파르타코딩클럽 #코딩 #jQuery #Ajax
- 항해99솔직후기 #항해99 #부트캠프추천
- 부트스트랩 #Bootstrap #웹개발첫걸음 #스파르타코딩클럽
- 스파르타코딩클럽 #크롤링 #스크래핑
Archives
- Today
- Total
이모저모
leetcode - sum3 본문
1.
# Input: nums = [-1,0,1,2,-1,-4]
# Output: [[-1,-1,2],[-1,0,1]]
# 먼저 생각 정리를 해보기.
# 첫번째 숫자 a를 뽑고, 그 다음친구 b를 불러 둔다.
# a와 b의 합 (sumOf2)을 구한다.
# 0 - (sumOf2) 인 값이 나머지 인덱스 아이들 중에 있는지 찾는다.
# 있다면 그 아이들을 짝짓는다.
# 없다면 a, b = a + 2 를 불러둔다.
# ... 언제까지? b < len(list) -1 일때까지.
# 남은 요소들이 3개 이상 남아있다면
# 위의 과정을 다시 한다.
def make3SumZero(nums):
big_list = [] # 커다란 리스트 (할아버지) 준비!
for i, num in enumerate(nums): # nums 에서 인덱스와 요소값을 차례로 뽑아 자식1을 지정한다.
secondIndex = i + 1 # 그 바로 다음 친구를 자식2로 지정
while secondIndex <= (len(nums) -2):
# 자식 2의 인덱스 가운데이므로, 끝에서 두번째 인덱스일때까지만 가능.
secondNum = nums[secondIndex] # 자식 2 인덱스의 요소 값을 secondNum 으로 가져온다.
sumOf2 = num + secondNum # 자식1과 자식2 --> 두 요소의 합을 먼저 구해본다.
if -sumOf2 in nums[secondIndex+1:]:
# 구한 합(sumOf2)을 부호 역전한 값이 두번째 요소 우측 친구들 중에에서 있다면
# 합이 0이 되는 세 자식들이 만난 것이므로, 그 아이들을 리스트로 묶어 커다란 리스트에 append
big_list.append([num, secondNum, -sumOf2])
# 세 친구가 짝지어졌거나 아니거나, 가운데 요소는 오른쪽으로 한칸 이동한다.
secondIndex += 1
# 리스트들이 순서만 다를 뿐 값의 조합은 동일한 아이들이 있을 것이므로,
# 재정비해서 담아줄 not_duplicated 를 준비한다.
not_duplicated = []
# 앞서 일차적으로 만들어진 big_list 에서 아빠 리스트들을 하나씩 검사한다.
for fatherLi in big_list:
fatherLi.sort() # fatherLi를 제자리 정렬시킨다.
if fatherLi not in not_duplicated: # 정렬된 fatherLi가 최종판인 not_dup~에 없다면,
not_duplicated.append(fatherLi) # 정렬된 이 fatherLi를 not_dup~에 추가한다.
return not_duplicated
nums = [-1,0,1,2,-1,-4]
print(make3SumZero(nums))
첫 시도.
'coding > 알고리즘,자료구조' 카테고리의 다른 글
leetcode - 빗물트래핑 - 투포인터 방식 주석달아보기! (0) | 2022.01.15 |
---|---|
leetcode - array-partition-i (1) | 2022.01.15 |
leet code - 가장 긴 팰린드롬(longest-palindromic-substring)문제 연습 (0) | 2022.01.15 |
leetcode 49 group-anagrams _ # sort (0) | 2022.01.15 |
python - 유효한 palindrome 문제 _ ( + deque) (0) | 2022.01.15 |
Comments