본문 바로가기

공부/프로그래머스

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

프로그래머스 문제

<제일 작은 수 제거하기>

 

Q) 정수를 저장한 배열, arr에서 가장 작은 수를 제거한 배열을 리턴

제일 작은 수 제거하기 문제

1) arr의 길이는 1이상인 배열으로 두번째 예시와 같이 1개만 들어있으면 1개가 지워짐으로 빈 리스트가 되어 -1을 리턴

2) 수의 배열은 동일해야한다.

 

 

A) 답변

제일 작은 수 제거하기 내 답변

1) arr의 길이가 1보다 작다면 -1을 반환해주는 if문을 적어준다.

2) min값으로 arr[0]를 넣어서 값들을 하나 하나 비교해서 min을 구하는 for문을 사용했다.

a를 사용하지않고 remove(arr[i])로 진행하였을 때, 오류가 나서 확인해보니 min값이 여러개이면 모든 min을 처리해주어야했다. 질문하기를 찾아보니 원래는 1개만 지워도 답으로 쳐주었다는 것 같은데 최근 질문하기에서는 모두 지워야한다고 되어있다.

3) 모든 min의 값의 개수를 구하기 위해서 filter를 사용했다.

4) min값의 개수만큼 for문으로 remove를 시켜서 제거해주었다.

 

너무 길고 긴 수식이라서 다른 사람들의 답변을 확인해보았는데, 나의 수식이 너무 부족한 것이 느껴졌다.

- min 함수 : 리스트에서 최소값 찾기 

- max 함수 : 리스트에서 최대값 찾기

min 함수를 사용했으면 최소값을 한번에 찾을 수가 있었다. min으로 값을 찾고 그 값을 remove해주고 처리하는 식들이 많았다. 역시 먼저 이러한 기능이 있었으면 좋겠다라는 생각이 든다면 찾아봐야한다는걸 다시 깨달았다.