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

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

hoony926 2024. 6. 8. 23:12

 

 

문제 01 배열 정렬하기

정수 배열을 정렬해서 반환하는 solution()함수 완성하기.

제약 조건 

· 정수 배열의 길이는 2 이상 10^5(10의 5제곱) 이하

· 정수 배열의 각 데이터 값은 -100,000 이상 100,000이하입니다.

 

입력 출력
[1,-5,2,4,3] [-5,1,2,4,3]
[2,1,1,3,2,5,4] [1, 1, 2, 2, 3, 4, 5]
[1,6,7] [1, 6, 7]

 

정렬 함수 : "리스트 변수".sort()

def solution(arr):
  arr.sort()
  return arr

 

* 주의사항

위와 같이 함수를 작성할 경우

인자로 들어온 arr 원본이 변형된다.

 

따라서 정렬이 완료된 별도의 새로운 리스트를 반환받으려면

list(sorted("리스트 변수"))

def solution(arr) : 
   result_arr = list(sorted(arr))
   return result_arr

 

 


 

문제 02 배열 제어하기

정수 배열을 입력 받는다.

배열 중복값을 제거하고, 배열 데이터를 내림차순으로 정렬해서 반환하는 solution함수 구현하기

 

- 배열 중복 제거 후 반환 방법: list(set("리스트 변수"))

def solution(lst):
  unique_lst = list(set(lst)) # ➊ 중복값 제거
  unique_lst.sort(reverse=True) # ➋ 내림차순 정렬 
  return unique_lst
  
# TEST 코드 입니다. 주석을 풀고 실행시켜보세요
# print(solution([4, 2, 2, 1, 3, 4])) # 반환값 : [4, 3, 2, 1]
# print(solution([2, 1, 1, 3, 2, 5, 4])) # 반환값 : [5, 4, 3, 2, 1]

 

 

중복 제거 방법의 경우

Java에 비하면 가히 혁명적인 방법이다.

꼭 기억하기

list(set("리스트 변수명"))

 

심지어 set()함수는 해시 알고리즘으로 데이터를 저장하므로, 

시간 복잡도O(N)을 보장합니다.

 


 

♬ 자료 출처 - 책

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

 

 

 

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

감사합니다.