[프로그래머스] 제일 작은 수 제거하기

Mark·2022년 5월 20일
0
post-thumbnail

✔️ 문제 설명

정수를 저장한 배열, arr 에서 가장 작은 수를 제거한 배열을 리턴하는 함수, solution을 완성해주세요. 단, 리턴하려는 배열이 빈 배열인 경우엔 배열에 -1을 채워 리턴하세요. 예를들어 arr이 [4,3,2,1]인 경우는 [4,3,2]를 리턴 하고, [10]면 [-1]을 리턴 합니다.
 

제한 조건

  • arr은 길이 1 이상인 배열입니다.
  • 인덱스 i, j에 대해 i ≠ j이면 arr[i] ≠ arr[j] 입니다.
     

📝 접근 방법

1) 리스트 안에 원소의 개수가 1개일 경우 [-1] 리턴
2) 리스트 안에 원소의 개수가 여러개일 경우 제일 작은 수 제거
3) 제일 작은 수를 알아내기 위해 리스트 내에 원소들과 크기 비교 필요
4) 리스트 내부에 1번째에 위치한 원소를 새로운 변수에 넣어줌
5) for문을 돌려서 리스트 안에 원소들과 새로운 변수의 값의 크기를 비교
6) 제일 작은 값을 추출할 수 있음
7) 새로운 변수에 5)를 통해 뽑은 제일 작은 값을 담아줌
8) 기존에 있던 리스트에 제일 작은 값을 remove 시켜줌
9) remove 시킨 리스트를 리턴
 

📝 풀이에 사용된 개념

  • 리스트 내에 특정 값 제거하기
리스트명.remve(제거할 값)
  • 리스트 내에 특정 값 추가하기
리스트명.append(추가할 값)
  • min함수 사용 : 리스트내에 제일 작은 값 구하기
min(리스트명)

  

✏️ 내 풀이

  • '접근 방법' 기준으로 풀이
arr = [4,3,2,1]
answer = []
def solution (arr) : 
    small_value = arr[0]
    if len(arr) == 1 :
        answer.append(-1)
    else :
        for i in arr :
            if i < small_value :
                small_value = i
        arr.remove(small_value)
        return arr

✏️ 2번째 풀이

  • 리스트 내부에 min함수로 최소값을 구해서 그 값을 삭제시켜줌
def solution (arr) : 
    if len(arr) == 1 :
        answer.append(-1)
    else :
        small_value = min(arr)
        arr.remove(small_value)
        return arr

  

결과

  • 7점은 처음이다. 앞으로 더더욱 발전할 수 있도록 더더욱 노력하자.
  • 리스트 내에 있는 값들을 비교하여 값을 찾아내는 과정에서 어려움이 있었다.

  

문제 풀기 (프로그래머스)

https://programmers.co.kr/learn/challenges

profile
개인 공부 정리

0개의 댓글