✔ 제일 작은 수 제거하기
문제 분석하기
arr의 값을 하나씩 다른 값들과 비교해가면서 제일 작은 수를 찾음
그 후 제일 작은 값이 아니라면 정답 배열에 저장
손으로 풀어보기
- 배열의 길이가 1이라면 -1을 저장하여 반환
- 배열의 길이가 1보다 크다면 arr의 값을 하나씩 다른 값들과 비교해가면서 제일 작은 수를 찾음
- 제일 작은 수가 아니라면 정답 배열에 저장
- 정답 배열을 반환
슈도코드 작성하기
arr(정수를 저장한 배열)
if(arr의 크기가 1이라면) {
배열에 -1을 담아 반환
}
else {
min(제일 작은 수)
for(i -> arr만큼) {
min을 더 작은 수로 갱신
}
answer(가장 작은 수를 제거한 배열)
index(숫자 저장 위치 인덱스)
for(i -> arr의 크기만큼) {
if(arr[i]가 min과 같다면)
통과
answer[index]에 arr[i] 저장 후 index 증가
}
answer 반환
}
코드 구현하기
/**
* 12935) 제일_작은_수_제거하기
*/
public class L022_12935 {
// arr(정수를 저장한 배열)
public int[] solution(int[] arr) {
// arr의 크기가 1이라면
if (arr.length == 1) {
// 배열에 -1을 담아 반환
return new int[] { -1 };
}
// arr의 크기가 1보다 크다면
else {
// min(제일 작은 수)
int min = Integer.MAX_VALUE;
// min을 더 작은 수로 갱신
for (int i : arr) {
min = Math.min(min, i);
}
// answer(가장 작은 수를 제거한 배열)
int[] answer = new int[arr.length - 1];
// index(숫자 저장 위치 인덱스)
int index = 0;
for (int i = 0; i < arr.length; i++) {
// arr[i]가 min과 같다면
if (arr[i] == min)
// 저장하지 않고 통과
continue;
// answer[index]에 arr[i] 저장 후 index 증가
answer[index++] = arr[i];
}
// answer 반환
return answer;
}
}
// 테스트 케이스
public static void main(String[] args) {
L022_12935 solution = new L022_12935();
int[] arr = { 4, 3, 2, 1 };
int[] result = solution.solution(arr);
System.out.println(Arrays.toString(result));
}
}
'Coding Test > Java 알고리즘 실전' 카테고리의 다른 글
[12940] 최대공약수와 최소공배수 (0) | 2023.12.28 |
---|---|
[12937] 짝수와 홀수 (0) | 2023.12.28 |
[12934] 정수 제곱근 판별 (0) | 2023.12.27 |
[12933] 정수 내림차순으로 배치하기 (0) | 2023.12.27 |
[12932] 자연수 뒤집어 배열로 만들기 (0) | 2023.12.27 |