링크 : programmers.co.kr/learn/courses/30/lessons/68644
내 풀이
def solution(numbers):
result = []
for i in range(len(numbers)):
for j in range(1, len(numbers)):
if(i == j):
continue
a = numbers[i] + numbers[j]
if a not in result:
result.append(a)
result.sort()
return result
다른 인덱스의 두 개의 수를 뽑아야해서 이중 for문을 사용하였고
더한 값이 중복되는 경우가 없어서 not in을 사용하였다.
후에 출력해보니 numbers[3] + numbers[3] 이렇게 인덱스가 겹치는 경우가 있었다.
문제에선 다른 인덱스 두 개를 뽑으라고 해서 i == j 이면 continue를 사용하였다.
다른 사람 풀이
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)))
i+1을 함으로써 i == j 가 되지 않도록 하였다...
그리고 여기선 not in 대신 set을 사용하였다.
set() 은 같은 요소가 존재할 수 없게 한다.
'알고리즘 > 프로그래머스' 카테고리의 다른 글
[Level1] 나누어 떨어지는 숫자 배열 (0) | 2021.04.07 |
---|---|
[Level1] 체육복 (0) | 2021.04.06 |
[Level1] 크레인 인형뽑기 게임 (0) | 2021.04.05 |
[Level1]완주하지 못한 선수 (0) | 2021.04.05 |
[Level1]K번째 수 (0) | 2021.03.31 |