https://programmers.co.kr/learn/courses/30/lessons/68644
def solution(numbers):
answer = []
numbers.sort()
for i in range(len(numbers)):
for j in range(i+1,len(numbers)):
answer.append(numbers[i] + numbers[j])
answer= list(set(answer))
return answer
보자마자 바로 코드 작성할수있을정도로 아주 쉬운문제이다
근데 뭘놓쳤지?...
중복제거를 위해 set하는 과정에서 정렬이 풀리면서 오름차순으로 정렬이 안된것!
set 연산 이후에는 꼭 다시한번 정렬을 해주자!
미리 정렬해주는건 의미가 없으므로
앞부분 정렬 삭제 -> 뒷부분으로 정렬 이동
def solution(numbers):
answer = []
for i in range(len(numbers)):
for j in range(i+1,len(numbers)):
answer.append(numbers[i] + numbers[j])
answer= list(set(answer))
answer.sort()
return answer
정렬을 해야하는경우
set 연산 이후에는 정렬이 풀리니 꼭 다시한번 정렬을 해주자!
사실 틀린 이유를 생각하다가 2중for문 도는 과정에서 for문의 range를
for i in range(len(numbers)-1):
for j in range(i+1,len(numbers))
이렇게 수정해야 하는것 아닌가 하는 생각도 했었는데
테스트 해보니 그냥 돌려도 별 상관없다!
심지어 이렇게 돌려도 에러가 안뜬다는걸 처음 알았다!..
끝!