level1_두 개 뽑아서 더하기

2024. 6. 26. 21:51파이썬_알고리즘(코딩테스트)/level1

 

 

 

내가 제출한 코드

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_set=set(answer)
    answer=list(answer_set)
    answer.sort()
    
    return answer

 

  • 이중 for문
    • 바깥루프 : 인덱스 i를 0부터 numbers 리스트의 길이까지 반복한다.
    • 안쪽루프 : 인텍스 j를 i+1부터 numbers 리스트의 길이까지 반복한다.
    • 각 반복만다 number[i]와 number[j]의 합을 answer리스트에 추가한다.
  • 중복제거
    • answer 리스트를 set으로 변환하여 중복된 값을 제거한다. 
  • answer = list(answer_set)
  • answer.sort()
    • 리스트로 변환 및 정렬
    • 여기서 return sorted(answer)을 바로 써주어도 된다.  

 

sort와 sorted의 차이는

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_set = set(answer)
    answer = list(answer_set)
    answer.sort()  # 리스트를 제자리에서 정렬합니다.
    
    return answer  # 정렬된 리스트를 반환합니다.
  • sort()는 리스트를 제자리에서 정렬된다.
  • 즉, 리스트 자체를 정렬하지만 아무것도 반환하지 않는다(None을 반환).
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_set = set(answer)
    answer = list(answer_set)
    
    return sorted(answer)  # 정렬된 리스트를 반환합니다.
  • sorted()는 새로운 정렬된 리스트를 반환한다
  • 원래 리스트는 변경되지 않는다.