728x90
level1 인데... 이렇게 한참이나 생각할 줄이야...!!
끝내 완성하지 못하고 구글링을 한 나 자신...ㅎ 반성하며 여러가지 방법으로 풀어보기로 했다.
풀이과정 -1
입력된 arr 배열에서 가장 작은 수를 뽑아내고, (Math.min 활용)
answer 배열에 그 작은수를 제외한 나머지 값을 넣어주었다. (for문 활용)
arr배열에 값이 1개이면 answer={-1}을 넣어주었다. (if문 활용)
나는 Math.min 을 활용하지 못했고, for문을 돌리면서 min을 추려냈는데 너무 시간이 오래걸렸다.
배열의 최솟값을 뽑아내는 Math.min 기억하기!!!!!✅✅✅
import java.util.*;
class Solution {
public int[] solution(int[] arr) {
if(arr.length == 1){
int[] answer = {-1};
return answer;
} else {
int min = arr[0]; //최초 비교될 값을 넣어주어야 함.
int count = 0;
int[] answer = new int[arr.length-1];
for(int i=0; i<arr.length; i++){
min = Math.min(min, arr[i]);
}
for(int i = 0; i < arr.length; i++){
if(arr[i] != min){
answer[count] = arr[i];
count++;
}
}
return answer;
}
}
}
풀이과정 -2
가장 작은 수를 뽑아내기 위해 "정렬" 사용!
여기서 헷갈렸던 부분
배열의 오름차순 정렬은 Arrays.sort(배열);
배열의 내림차순 정렬은 Arrays.sort(배열, Collections.reverseOrder());
ArrayList 오름차순 정렬은 Collections.sort(배열);
ArrayList 오름차순 정렬은 Collections.sort(배열, Collections.reverseOrder());
import java.util.*;
class Solution {
public int[] solution(int[] arr) {
if(arr.length == 1){
int[] answer = {-1};
return answer;
}
int[] answer = new int[arr.length-1];
int count = 0;
int[] temp = arr.clone();
Arrays.sort(temp);
int min = temp[0];
for(int i=0; i<arr.length; i++){
if(min != arr[i]){
answer[count] = arr[i];
count++;
}
}
return answer;
}
}
'알고리즘 (JAVA) > 프로그래머스 알고리즘' 카테고리의 다른 글
[프로그래머스] level1. 정수 제곱근 판별 - 개발자 배찌 (0) | 2022.05.12 |
---|---|
[프로그래머스] level1.자연수 뒤집어 배열로 만들기 - 개발자 배찌 (0) | 2022.05.12 |
[프로그래머스] level1.같은 숫자는 싫어 - 개발자 배찌 (0) | 2022.05.12 |
[프로그래머스] 포스팅 관련하여.. (0) | 2021.06.21 |
[프로그래머스] 인형뽑기 게임 문제풀이 (JAVA) (0) | 2021.06.14 |