거인의 코딩일지
[Lv.1_Java]제일 작은 수 제거하기 본문
728x90
제일 작은수를 찾아 제거하고 answer배열에 값을 넣어주고 arr 배열에 값이 하나인 경우에는 배열값에 -1을 담아주어야 하는게 문제였다!
class Solution {
public int[] solution(int[] arr) {
if(arr.length == 1){
int[] answer = {-1};
return answer;
}
int[] answer = new int [arr.length-1];
int min = 2147000000;
int num = 0;
for (int i = 0; i < arr.length; i++) {
if (arr[i] < min) {
min = arr[i];
}
}
for(int i = 0 ; i < arr.length; i++){
if(arr[i] != min){
answer[num] = arr[i];
num++;
}
}
return answer;
}
}
class Solution {
public int[] solution(int[] arr) {
if(arr.length == 1){
int[] answer = {-1};
return answer;
}
int[] answer = new int [arr.length-1];
int min = 2147000000;
for (int i = 0; i < arr.length; i++) {
if (arr[i] < min) {
min = arr[i];
}
int num = 0;
for(int j = 0 ; j < arr.length; j++){
if(arr[j] != min){
answer[num] = arr[j];
num++;
}
}
}
return answer;
}
}
2가지로 풀었는데 첫번째 풀이는 for문을 2개 생성하는것이고 두번째 풀이는 이중 for문을 사용하는 것이였다.
우선 공통적으로 -1을 값으로 가지고 있는 것을 생성해주기 위해서 처음에 if 문을 사용하여 배열 값이 하나인경우
-1을 넣어주고 return 하여 식을 마치고
최솟값을 구해주기 위하여 int의 최대 수에서 배열 값이랑 비교했을 경우 배열중에 제일 작은 수를 찾아서 min 에 넣어주었다.
그 후 answer과 arr의 배열의 길이가 다르기 때문에 대입해주기 위해서 num이라는 변수를 생성하고 따로 num++;을 사용했고 첫번 째 풀이 처럼 for 문을 두개 생성하여 해결하는 것이 풀이 속도가 더욱 빠른것을 알수 있었다.!!
728x90
'알고리즘테스트 > Programmers' 카테고리의 다른 글
[Lv.1_Java] 부족한 금액 계산하기! (0) | 2023.04.09 |
---|---|
[Lv.0_Java] 편지...! (0) | 2023.03.30 |
[Lv.1_Java] 없는 숫자 더하기 (0) | 2023.03.29 |
[Lv.1_Java] x만큼 간격이 있는 n개의 숫 (0) | 2023.03.29 |
[Lv.0_Java] OX퀴즈 (0) | 2023.03.28 |