[프로그래머스] 두 개 뽑아서 더하기 level 1(python,파이썬)

ggoggori_._·2021년 1월 4일
0

프로그래머스

목록 보기
2/7

https://programmers.co.kr/learn/courses/30/lessons/68644

문제 설명

정수 배열 numbers가 주어집니다. numbers에서 서로 다른 인덱스에 있는 두 개의 수를 뽑아 더해서 만들 수 있는 모든 수를 배열에 오름차순으로 담아 return 하도록 solution 함수를 완성해주세요.

제한사항

numbers의 길이는 2 이상 100 이하입니다.
numbers의 모든 수는 0 이상 100 이하입니다.


def solution(numbers):
    answer = []
    for i in range(len(numbers)):
        for j in range(len(numbers)):
            if i==j:
                continue
            answer.append(numbers[i]+numbers[j])
    answer = list(sorted(list(set(answer))))
   
    return answer
    

리스트로 주어지는 numbers를 for문으로 순회해서 원소를 하나씩 꺼낸다.
그 과정에서 for문을 하나 더 추가하여 이중으로 구성하고 먼저 구성된 for문에서 나온 원소를 i, 후에 구성된 for 문에서 나온 원소를 j라고 했을 때, 이중 for문 구성으로 i가 한번 나올 때 j는 numbers의 원소 갯수마다 순회된다.

따라서, answer.append(numbers[i]+numbers[j]) 코드로 서로 다른 인덱스에 있는 두개의 수의 합을 answer list에 넣어준다.

같은 인덱스일 경우 넘어가는 코드가 필요한데 if i==j: continue 로 인덱스가 같으면 다음 순회로 넘어갈 수 있도록 했다.

이중 for문에 대한 이해가 있다면 쉬운 문제인 것 같다.

0개의 댓글