[python_파이썬_pass]프로그래머스_LV1_두 개 뽑아서 더하기_풀이
2024. 5. 10. 12:24ㆍ코드리뷰
728x90
반응형
공부하는허딩크 : https://www.youtube.com/live/kdCOczz1e9c?feature=shared
조합을 풀기에 가장 좋은 문제인 것 같다.
<첫번째 시도 : 통과>
combinations를 사용하여 2개짜리 조합을 만들어 준 뒤 각 배열을 sum으 해주고 중복되지 않게 리스트를 구성한다.
itertools의 combinations와 continue, append, sum, sort를 사용해서 코드를 작성했다.
import itertools
def solution1(numbers):
answer = []
for i in itertools.combinations(numbers, 2):
if sum(i) in answer:
continue
else:
answer.append(sum(i))
answer.sort()
return answer
<두번째 시도 : 통과>
함수로만 하면 재미 없으니 다른 함수를 사용해서 풀이를 해 보았다.
이중for문으로 숫자가 겹치지 않게 만들고, append, set, sorted를 사용해서 코드를 작성했다.
def solution(numbers):
answer = []
for i in range(len(numbers)):
for j in range(i + 1, len(numbers)):
answer.append(numbers[i] + numbers[j])
temp = set(answer)
A_sorted = sorted(temp)
return A_sorted
<다른사람풀이>
1. sorted(set(answer)) 이게 한번에 안되던데 sorted는 튜플은 안됨 => 그냥 list()로 만들어서 하면 된다.
ㄴ sorted(list(set(answer)))
2. 한줄 코드 :
sorted(set(sum(i) for i in list(combinations(numbers, 2))))
728x90
반응형
'코드리뷰' 카테고리의 다른 글
[python_파이썬_pass]백준_7785번_회사에 있는 사람_풀이 (0) | 2024.05.11 |
---|---|
[python_파이썬_pass]백준_14425번_문자열 집합_풀이 (0) | 2024.05.11 |
[python_파이썬_pass]프로그래머스_LV1_K번째수_풀이 (0) | 2024.05.10 |
[python_파이썬_pass]프로그래머스_LV1_문자열 내 마음대로 정렬하기_풀이 (0) | 2024.05.10 |
[python_파이썬_pass]프로그래머스_LV1_최소직사각형_풀이 (0) | 2024.05.10 |