개발일기 [Python 파이썬]

[파이썬 01] [:n] 오름차순 내림차순 정렬 sorted 반대로 reverse

neullo 2024. 3. 13. 11:25

리스트와 아무 숫자(n) 주고, 주어진 n개수만큼 리스트 n개 출력

Q. 정수 리스트 num_list와 정수 n이 주어질 때, num_list의 첫 번째 원소부터 n 번째 원소까지의 모든 원소를 담은 리스트를 return 하도록 solution 함수를 완성해 주세요.

A. 만약 5라고 하면 1,2,3,4,5를 모두 담은 리스트를 출력해야한다. 그러기 위해서 리스트[:숫자] 하면 그 숫자까지 출력해주고 리스트[숫자:] 하면 그 숫자 이후부터 출력한다.

def solution(num_list, n):
    return num_list[:n]

 


오름차순

정수로 이루어진 리스트 num_list가 주어집니다. num_list에서 가장 작은 5개의 수를 오름차순으로 담은 리스트를 return하도록 solution 함수를 완성해주세요.

 

def solution(num_list):
    return sorted(num_list)[:5]

이 함수는 주어진 리스트를 sorted 함수를 사용하여 오름차순으로 정렬한 후에, 슬라이싱을 통해 처음 5개의 요소를 선택여 반환한다.

num_list[:5] 는 주어진 리스트 num_list에서 "가장 작은 5개의 수를 오름차순으로 담은 리스트를 반환"하는 것.

출력은 1,2,3,4,5

 

만약, 아래와 같이 썼다면 리스트에서 처음 5개의 요소를 제외한 나머지를 반환합니다. 하지만 문제는 리스트에서 작은 순으로 5개의 요소를 선택해야 한다. 이를 위해서는 리스트를 정렬한 후에 처음 5개의 요소를 선택해야 한다.

따라서 num_list[5:]는 리스트에서 인덱스 5 이후의 요소를 반환하는 것

출력은 6,7,8,9,10

 

def solution(num_list):
    return num_list [5:]

 

 

내림차순

 

만약 내림차순으로 출력하고 싶다면 어떻게 할까?

 

5 이하로 큰 숫자부터 출력하려면 num_list[:5] 는 주어진 리스트 num_list에서 "가장 작은 5개의 수를 오름차순으로 담은 리스트를 반환"하는 것- 그대로 써주고 reverse 거꾸로 해주면 된다. 

def solution(num_list):
    return sorted(num_list[:5], reverse=True)

# 예시 테스트
result = solution([1, 2, 3, 4, 5, 6, 7, 8, 9, 10])
print(', '.join(map(str, result)))  # 출력: 5, 4, 3, 2, 1

 

만약 10 이하로 큰 숫자부터 출력하려면 num_list[5:]는 리스트에서 인덱스 5 이후의 요소를 반환하는 것을 넣어주고 거꾸로 출력하면된다.

def solution(num_list):
    return sorted(num_list[5:], reverse=True)

# 예시 테스트
result = solution([1, 2, 3, 4, 5, 6, 7, 8, 9, 10])
print(', '.join(map(str, result)))  # 출력: 10, 9, 8, 7

 

 

만약 10을 모두 출력하고 싶다면? 리스트를 그대로 반환하는 대신에 역순으로 정렬하여 반환하면 된다. 가장 작은 10개의 수를 오름차순으로 담은 리스트를 반환

def solution(num_list):
    return sorted(num_list[:10], reverse=True)

# 예시 테스트
result = solution([1, 2, 3, 4, 5, 6, 7, 8, 9, 10])
print(', '.join(map(str, result)))  # 출력: 10, 9, 8, 7, 6, 5, 4, 3, 2, 1

 

 


 

[파이썬02] [:n] range 숫자를 차례로 담은 리스트 (오름차순,내림차순)

 

[파이썬] range 숫자를 차례로 담은 리스트

정수 start_num와 end_num가 주어질 때, start_num부터 end_num까지의 숫자를 차례로 담은 리스트를 return하도록 solution 함수를 완성해주세요. def solution(start_num, end_num): return list(range(start_num, end_num + 1)) # 예

neulo.tistory.com