◇ 문제 설명
정수를 저장한 배열, arr 에서 가장 작은 수를 제거한 배열을 리턴하는 함수, solution을 완성해주세요. 단, 리턴하려는 배열이 빈 배열인 경우엔 배열에 -1을 채워 리턴하세요. 예를들어 arr이 [4,3,2,1]인 경우는 [4,3,2]를 리턴 하고, [10]면 [-1]을 리턴 합니다.
◇ 제한 조건
- arr은 길이 1 이상인 배열입니다.
- 인덱스 i, j에 대해 i ≠ j이면 arr[i] ≠ arr[j] 입니다.
◇ 입출력 예시
| arr | return |
| [4, 3, 2, 1] | [4, 3, 2] |
| [10] | [-1] |
◇ 초기 내용
※ [출처] 프로그래머스-코딩테스트 연습-문제명
※ 초기 내용을 참고하여 문제에 맞는 코드를 작성하세요.
class Solution {
public int[] solution(int[] arr) {
int[] answer = {};
return answer;
}
}
◇ 답안
class Solution {
public int[] solution(int[] arr) {
int[] answer = {};
if(arr.length == 1){
answer = new int[1];
answer[0] = -1;
return answer;
}
answer = new int[arr.length-1];
int min = arr[0];
for(int i = 0; i<arr.length; i++){
if(arr[i]<min){
min = arr[i];
}
}
int r = 0;
for(int i = 0; i<arr.length; i++){
if(arr[i]!=min){
answer[r] = arr[i];
r++;
}
}
return answer;
}
}
◇ 답안 풀이
(※ 실행 흐름 순으로 해석됩니다.)
class Solution {
public int[] solution(int[] arr) {
int[] answer = {};
//넘어온 배열의 길이가 1인경우, min삭제시 배열이 NULL이 되므로 문제의 조건과 같이 처리 후 종료
if(arr.length == 1){
answer = new int[1];
answer[0] = -1;
return answer;
}
//answer은 arr의길이 -1(최소값을 없애므로)
answer = new int[arr.length-1];
//min의 초기값 arr[0]
int min = arr[0];
//arr배열 중 가장 작은 값 검색
for(int i = 0; i<arr.length; i++){
if(arr[i]<min){
min = arr[i];
}
}
//answer에 arr을 대입하는데 min값을 빼고 대입한다.
int r = 0;
for(int i = 0; i<arr.length; i++){
if(arr[i]!=min){
answer[r] = arr[i];
r++;
}
}
return answer;
}
}
◇ 실행결과

◇ 출처
https://programmers.co.kr/learn/challenges
코딩테스트 연습
기초부터 차근차근, 직접 코드를 작성해 보세요.
programmers.co.kr
'코딩테스트 > Java' 카테고리의 다른 글
| [Level1] 최대공약수와 최소공배수 답안 및 풀이 (0) | 2021.06.16 |
|---|---|
| [Level1] K번째수 답안 및 풀이 (0) | 2021.06.16 |
| [Level1] 서울에서 김서방 찾기 답안 및 풀이 (0) | 2021.06.15 |
| [Level1] 평균 구하기 답안 및 풀이 (0) | 2021.06.13 |
| [Level1] 직사각형 별찍기 답안 및 풀이 (0) | 2021.06.13 |
댓글