PROGRAMMERS Python Lv1. 두 개 뽑아서 더하기

최대 1 분 소요

이번 문제는 두 개 뽑아서 더하기입니다.

def solution(numbers):
    answer = []
    for i in range(0, len(numbers)):
        if i == len(numbers):
            break
        for j in range(i+1, len(numbers)):
            num = numbers[i]+numbers[j]
            answer.append(num)
            if num in answer:
                pass
    result = sorted(answer)
    return result

우선 이 문제를 풀기 위해선 for 문을 두번 사용해야 합니다.

하나는 numbers의 index를 0부터 len(numbers)-1까지 이동하는 것이고,

하나는 지정된 위치에서 각각 뒤의 숫자들과 더하기 위한 for문입니다.

for i in range(0, len(numbers)):
  if i == len(numbers):
    break

이 부분을 보면 range를 사용해서 index 0부터 전체 길이의 -1까지

돌아갈 수 있게 합니다.

여기서 중요한 것은 i == len(numbers)일 경우,

break 하는 것을 만들어 줘야

이후 for 문에 사용되는 i+1 이 오류가 발생하지 않습니다.

for j in range(i+1, len(numbers)):
    num = numbers[i]+numbers[j]
    answer.append(num)
    if num in answer:
        pass

위의 부분은 이제 앞에서 선택된 위치의 숫자 뒤의 것들을

하나씩 더하게 해주는 부분입니다.

더한 값들을 비어있는 리스트 answer에 append 시켜줍니다.

여기서 중복을 방지하기 위해 if 문을 넣어줍니다.

마지막으로 sorted 함수를 사용하면 default로 오름차순으로

정렬이 됩니다.

혹시 제 풀이에 오류가 있거나

더 좋은 방법이 있다면 댓글 남겨주시면 감사드립니다.

댓글남기기