본문 바로가기
Algorithm/Programmers

제일 작은 수 제거하기

by 동그란 혜주 2019. 5. 31.

· 문제 설명

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

 

· 제한 조건

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

 

· 입출력 예

arr return
[4, 3, 2, 1] [4, 3, 2]
[10] [-1]

· Thinking 1

1. 배열 사이즈가 1이면 -1반환
2. min을 0으로 초기화 한 후 포문 돌고나서 min에 해당하는 인덱스를 제거


· 완성 코드

class Solution {
  public int[] solution(int[] arr) {
      if (arr.length == 1)		return new int[]{-1};

      int min = 0;
      for (int i = 1; i < arr.length; i++) {
      	if (arr[min] > arr[i]) {
      		min = i;
      	}
      }

      if (min != arr.length - 1) {
      	for (int i = min; i < arr.length-1; i++) {
      		arr[i] = arr[i + 1];
      	}
      }

      int[] answer = new int[arr.length - 1];
      for (int i = 0; i < arr.length - 1; i++) {
      	answer[i] = arr[i];
      }

      return answer;
  }
}

짜고나니까 코드가 예쁘지가 않다..

 


· 문제 출처

https://programmers.co.kr/learn/courses/30/lessons/12935

 

알고리즘 연습 - 제일 작은 수 제거하기 | 프로그래머스

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

programmers.co.kr

 

'Algorithm > Programmers' 카테고리의 다른 글

짝수와 홀수  (0) 2019.05.31
직사각형 별찍기  (0) 2019.05.31
정수 제곱근 판별  (0) 2019.05.31
정수 내림차순으로 배치하기  (0) 2019.05.31
자연수 뒤집어 배열로 만들기  (0) 2019.05.31

댓글