기록해야 성장한다

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

알고리즘/프로그래머스

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

sodapapa-dev 2019. 9. 18. 11:16

내가 처음에 짰던 코드.

테스트 케이스는 통과했지만 코드를 채점하려고 보니까 전부다 실패했다.

이때 구글링을 했다.

 

https://thiago6.tistory.com/127

 

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

내 코드 - 최솟값을,, 리스트를 따로 만들어, Collections.min();를 사용해도 될 것 같았는데, 그냥 구했다. class Solution { public int[] solution(int[] arr) { int[] answer = {}; int min = arr[0]; for (in..

thiago6.tistory.com

위 코드와 비교해본 결과 최하단의 for문의 구조가 array 중간을 건너뛰는 것을 알게되어 수정했다.

 public int[] solution(int[] arr) {
  		int answer[];
		
		if(arr.length - 1 == 0){
			 answer = new int[]{-1};
					  
			return answer; 
		}else{
			answer = new int[arr.length -1 ] ;
		}
		
		int min = arr[0];

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

이 for 문을 아래와 같이 수정했다.

int idx = 0;

for (int num : arr) {
    if (num != min) {
        answer[idx] = num;
        idx++;
    }
}
반응형
Comments