본문 바로가기
Python/코딩테스트

[Python] 프로그래머스 - 두 개 뽑아서 더하기

by @sseyeon_ 2020. 12. 16.
반응형

 

이번에 풀어 볼 문제는

 

리스트에서 서로 다른 인덱스를 가진 두 수를 뽑아 더해서 만들 수 있는 모든 경우의 수를 정렬하는 문제입니다 !

 

 

 

 

어떻게 해결하나?

  1. 인덱스가 다른 두 수를 뽑아서 더한다
  2. 중복을 제거하고, 정렬하기

 

 

① 인덱스가 다른 두 수를 뽑기

def solution(numbers):		# numbers라는 배열을 인자로 받았을 때
    answer = []				# 두 수를 더한 값을 넣을 배열 (중복된 숫자가 포함될 수 있음)
    
    for i in range(len(numbers)):
        for j in range(i, len(numbers)):
            if i != j:	# 인덱스가 다른 경우에만
                answer.append(numbers[i] + numbers[j])

 

② 중복을 제거하고 정렬

n = []		# 더한 수 중에서 중복된 수는 넣지 않을 리스트

    for i in answer:
        if i not in n:
            n.append(i)
   	
    # 파이썬 내장함수         
    n.sort()

 

 

파이썬 내장함수 sort() 관련 글은 여기에서 확인하실 수 있습니다!

https://sseyeon.tistory.com/2

 

 

 

 

전체코드

def solution(numbers):
    answer = []
    for i in range(len(numbers)):
        for j in range(i, len(numbers)):
            if i != j:
                answer.append(numbers[i] + numbers[j])

    n = []
    for i in answer:
        if i not in n:
            n.append(i)
            
    n.sort()
    
    return n

 

 

반응형