Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 프로시저
- 1단계
- SQL
- toLowerCase
- 프로그래머스
- 문자열
- Integer
- 코테
- 배열
- Java
- 알고리즘
- 오라클
- 짝수
- Math.max
- substring
- 코딩테스트
- 자바
- StringBuffer
- Linux
- 1lv
- oracle
- Math.min
- 데이터베이스
- 참조형
- PARSEINT
- 디비
- 1level
- programmers
- 1레벨
- string
Archives
- Today
- Total
웹 프로그래밍
[프로그래머스(Programmers)] 제일 작은 수 제거하기 - JAVA 본문
문제 설명
정수를 저장한 배열, arr에서 가장 작은 수를 제거한 배열을 리턴하는 함수, solution을 완성해 주세요. 단, 리턴하려는 배열이 빈 배열인 경우엔 배열에 -1을 채워 리턴하세요. 예를들어 arr이 [4, 3, 2, 1]인 경우는 [4, 3, 2]를 리턴하고, [10]면 [-1]을 리턴합니다.
제한 조건
1. arr은 길이 1이상인 배열입니다.
2. 인덱스 i, j에 대해 i != j 이면 arr[i] != arr[j] 입니다.
입출력 예
arr | return |
[4, ,3, 2, 1] | [4, 3, 2] |
[10] | [-1] |
풀이
1) Math.min을 사용한 풀이
Math.min(3, 2)는 두 수를 비교하여 더 작은 수 '2'를 출력한다.
class Solution {
public int[] solution(int[] arr) {
if(arr.length == 1) { // 길이가 1일 경우 answer에 -1 저장
int[] answer = {-1};
return answer;
}
int min = arr[0];
for(int i = 1; i < arr.length; i++) {
min = Math.min(min, arr[i]); // arr배열을 모두 비교 후, 제일 작은 수를 min에 저장
}
int[] answer = new int[arr.length - 1]; // 제일 작은 수를 제외한 모든 arr배열 값을 저장하기 위함
int cnt = 0;
for(int i = 0; i < arr.length; i++) {
if(min == arr[i]) { // 제일 작은 수와 일치한다면 계속, 아니면 answer배열에 담기
continue;
}
answer[cnt++] = arr[i];
}
return answer;
}
}
2) collection을 사용한 풀이
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
class Solution {
public int[] solution(int[] arr) {
int[] answer = {};
if (arr.length == 1) { // 빈 배열인 경우 answer에 -1 담기
answer = new int[] {-1};
} else {
List<Integer> list = new ArrayList<>();
for (int a : arr) { // arr 배열의 모든 요소를 a에 저장
list.add(a);
}
list.remove(Collections.min(list)); // list의 가장 작은 수 제거
answer = new int[arr.length - 1];
for (int i = 0; i < list.size(); i++) {
answer[i] = list.get(i); // list를 answer에 저장
}
}
return answer;
}
}
'프로그래머스 > level1' 카테고리의 다른 글
[프로그래머스(Programmers)] 나누어 떨어지는 숫자 배열 - JAVA (0) | 2021.10.29 |
---|---|
[프로그래머스(Programmers)] 두 정수 사이의 합 - JAVA (0) | 2021.10.26 |
[프로그래머스(Programmers)] 서울에서 김서방 찾기 - JAVA (0) | 2021.10.21 |
[프로그래머스(Programmers)] 문자열을 정수로 바꾸기 - JAVA (0) | 2021.10.20 |
[프로그래머스(Programmers) 약수의 합] - JAVA (0) | 2021.10.20 |