프로그래밍 이야기/파이썬 코딩 테스트 스터디

파이썬 코딩테스트 스터디 2주차 #4 - 문제 03 두 개 뽑아서 더하기

hoony926 2024. 6. 9. 11:32

 

지난 시간 문제 1~2번

 

파이썬 코딩테스트 스터디 2주차 #3 - 몸풀기 문제

문제 01 배열 정렬하기정수 배열을 정렬해서 반환하는 solution()함수 완성하기.제약 조건 · 정수 배열의 길이는 2 이상 10^5(10의 5제곱) 이하· 정수 배열의 각 데이터 값은 -100,000 이상 100,000이하입

hoony926.tistory.com

 

 


 

문제 03 두 개 뽑아서 더하기

정수 배열 number가 주어진다.

서로 다른 2개 수를 더해 만들 수 있는 모든 수를 배열에 오름차순으로 담아 반환하는 

solution()함수 완성하시오.

 

제약 조건 

· numbers 길이는 2 이상 100이하

· numbers의 모든 수는 0 이상 100 이하

 

입력 출력
[2,1,3,4,1] [2,3,4,5,6,7]
[5,0,2,7] [2,5,7,9,12]

 

* 중복값 제거하기

 

1. 내가 푼 방법

- enumerate 사용하기 

- set으로 중복 제거

- 정렬 안함.

 

def solution(numbers) : 
   arr = []
   for idx,val in enumerate(numbers) : 
      for j in range(idx+1, len(numbers)):
         arr.append(val+numbers[j])
   result_arr = list(set(arr))
   return result_arr

 

2. 책에 나온 풀이

range만 사용하기

 

def solution(numbers):
   ret[]  # 1. 빈 배열 생성
   
   for i in range(len(numbers)): # i에 0부터 numbers길이-1까지(배열의 마지막 인덱스) 까지 
      for j in range(i+1,len(numbers)): #j에 i+1부터 numbers길이-1까지(배열의 마지막 인덱스) 까지 
         ret.append(numbers[i]+numbers[j])

   ret = sorted(set(ret))
   return ret

 

 

1. "리스트".sort()    → 원본 정렬.

     

2. sorted("리스트")  → 원본 그대로 있고, 정렬 후 새로운 객체 반환

 

sorted() 내장 함수는 인자로 넘어온 객체의 

원래 순서를 건드리지 않고 정렬된 원소들을 새로운 객체에 담아서 반환

 

#set()은 list [] → set {} 형태로 바꾸면서 중복 제거
#sorted는 set {} → list []  형태로 변경

 

 

♬ 자료 출처 - 책

코딩 테스트 합격자 되기 - 파이썬 편

 

 

 

이 포스팅의 모든 내용은 해당 책의 내용을 바탕으로 하고 있습니다. 

감사합니다.