세조목

PYTHON 정리(가장 작은 수 뽑아내기, SORTED, REMOVE, LEN, APPEND) 본문

데이터 분석 공부/Python

PYTHON 정리(가장 작은 수 뽑아내기, SORTED, REMOVE, LEN, APPEND)

세조목 2024. 1. 17. 13:03

https://school.programmers.co.kr/learn/courses/30/lessons/12935?language=python3

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

숫자로 구성된 리스트가 있을때

리스트 안에서 가장 작은 숫자를 제외시키고싶다면 어떻게 해야할까?

 

이 예제를 풀기 위해서는 우선

어떻게 해야 가장 작은 수를 뽑아낼 수 있을지를 고민해봐야한다.

방법을 고민하던 중

리스트를 오름차순(또는 내림차순)으로 정렬시키고,

이렇게 정렬된 리스트를 변수가 가리키도록한 후

오름차순의 경우 [0], 내림차순의 경우 [-1]을 입력하여 인덱싱하는 방식으로 가장 작은 수를 뽑아낼 수 있었다.

이 때 유의해야할 점은 SORT 메소드가 아닌 SORTED함수를 사용해야한다는 점이다.

SORT메소드의 경우 리스트를 정렬하고 그 값으로 바꿔주기까지하는데

SORTED함수는 정렬만해주지 정렬된 값으로 바꿔주지는 않기때문이다.

이 문제에서는 SORT메소드를 사용하면 기존 리스트의 순서가 바뀌어버리기때문에

SORTED함수로 원하는 값만 출력하고, 기존 리스트의 배열 순서는 그대로 유지시켜줘야한다.

def solution(arr):
    v = sorted(arr)
    v2 = v[0]
    arr.remove(v2)
    if len(arr) != 0:
        pass
    else:
        arr.append(-1)
    return arr

 

 

그렇게 가장 작은 수를 뽑아내기만 한다면 뽑아낸 값을 기존 리스트에서 제거해주는 식으로

예제를 해결할 수 있다.

이 때는 뽑아낸 가장 작은 수를 또 다른 변수가 가리키도록 지정한 후

기존 리스트에서 그 변수를 REMOVE해주면 된다.

 

<사용한 함수 및 메소드>

  • SORTED(리스트)
  • REMOVE(변수)
  • LEN
  • APPEND