파이썬으로 프로그래머스 문제 풀어보기
두 개 뽑아서 더하기
def solution(numbers):
answer = []
for i in range(len(numbers)): # numbers의 범위만큼 for문 반복
for j in range(i): # i의 범위만큼 for문 반복
if numbers[i] != numbers[j]: # i와 j의 값이 다르다면
sum = numbers[i] + numbers[j] # sum이라는 변수에 numbers[i] + numbers[j] 값 넣어주기
elif numbers[i] == numbers[j]: # numbers[i]와 numbers[j]가 같다면
sum = numbers[i] + numbers[j] # sum이라는 변수에 numbers[i] + numbers[j] 값 넣어주기
answer.append(sum) # answer 리스트에 sum변수 넣어주기
return sorted(list(set(answer))) # 중복제거를위해 answer에 set를 해주고 list로 만들어준 뒤, sorted(리스트)를 해준다
'''
case2
def solution(numbers):
answer = []
for i in range(len(numbers)):
for j in range(i+1, len(numbers)):
answer.append(numbers[i] + numbers[j])
return sorted(list(set(answer)))
return sorted(set(answer))
'''
'''
answer.sort()는 리스트 자체를 변경해버린다. 원본 리스트의 순서를 변경한다
>>> myList = [4, 2, 3, 5, 1]
>>> myList.sort()
>>> myList
[1, 2, 3, 4, 5]
sorted(answer)는 기존의 리스트를 변경하는게 아니라 정렬된 ''새로운'' 리스트를 반환하는것
모든 iterable객체에 동작한다(list, tuple, dict, str ... )
>>> sorted([4, 2, 3, 5, 1])
[1, 2, 3, 4, 5]
'''