기록양식 (TIL)
1. 사용 개념
2. 의문점 or 문제
3. 시도해 본 것들(+응용) or 삽질
4. 해결
5. 알게 된 점(회고)
- 최소값 설정
- 조건문, 반복문과 인덱스값 활용

- 입출력 예시를 보고
arr배열을 내림차순으로 정렬한 뒤, 제일 작은 숫자를 제거 후, 재정렬- 오름차순의 제일 작은 인덱스값을 제거 후, 내림차순 정렬
- 컬렉션
ArrayList활용만약 [0]번째 인덱스 값을 제거 하는거였다면, 배열에서도 가능했었다.
https://hajoung56.tistory.com/103 > 배열로도 가능
import java.util.*;
class Solution {
public int[] solution(int[] arr) {
if(arr.length <= 1){
return new int[]{-1};
}
ArrayList<Integer> ay = new ArrayList<Integer>();
for (int num : arr){
ay.add(num);
}
Collections.sort(ay);
ay.remove(0);
Collections.sort(ay, Collections.reverseOrder());
int[] answer = new int[ay.size()];
for (int i = 0; i<ay.size(); i++){
answer[i] = ay.get(i);
}
return answer;
}
}
테스트에서 실패&이유
문제의 예시 중 입력 값 [4,3,2,1] > 출력 값 [4,3,2] 내림차순이 아니라,
입력[4,1,2,3] >출력[4,2,3] 차순에 상관없이 최소값을 빼고 정렬하는 문제였다.
그러니까 차순대로 정렬하지 않고 풀이해야 한다.
import java.util.*;
class Solution {
public int[] solution(int[] arr) {
if(arr.length <= 1){
return new int[]{-1};
}
int min = Integer.MAX_VALUE;
for (int i=0; i<arr.length; i++){
if(min >= arr[i]){
min = arr[i];
}
}
int[] answer = new int[arr.length-1];
int index = 0;
for(int i=0; i<arr.length; i++){
if(arr[i]==min){
continue;
}
answer[index++] = arr[i];
}
return answer;
}
}
- 배열의 길이가 1보다 크지 않으면 -1
- 최소값을 정수의 최대값으로 설정
int min = Integer.MAX_VALUE;for문에서 최소값이 나올때까지 반복- 2번째
for문에서arr의i번재인덱스값과min이 일치하면continue로 건너뛰어서
i++을 한뒤, i의 인덱스 값(min을 제거한 인덱스 값)과 return값의 인덱스를 일치 시키고 정렬
- 최소값 설정과 구하기
- 조건문, 반복문 내에서 continue 활용
- 인덱스값의 활용