728x90
코딩테스트 연습 - 제일 작은 수 제거하기
정수를 저장한 배열, arr 에서 가장 작은 수를 제거한 배열을 리턴하는 함수, solution을 완성해주세요. 단, 리턴하려는 배열이 빈 배열인 경우엔 배열에 -1을 채워 리턴하세요. 예를들어 arr이 [4,3,2,1
programmers.co.kr
👀 문제 설명
정수를 저장한 배열, 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] |
🤨 고민
작은 수 판별하기
제한 조건 2번에 대한 처리 방안
💻 코딩
class Solution {
public int[] solution(int[] arr) {
int[] answer = {};
// 배열의 길이가 1인 경우 -1 리턴
if (arr.length == 1) return new int[]{-1};
// 배열의 처음 데이터를 숫자형 변수 min 에 대입
int min = arr[0];
// 배열의 길아 2번째 부터 길이만큼 도는 for
for (int i = 1; i < arr.length; i++) {
// System.out.println("[DEBUG] min = " + min + " arr["+i+"] = " + arr[i]);
// min값과, 배열의 값중 작은 수를 리턴
min = (min <= arr[i]) ? min : arr[i];
}
// System.out.println("[DEBUG] 가장 작은 수 : " + min);
// 배열 -1 길이만큼 답안지 길이 초기화
answer = new int[arr.length-1];
// 제일 작은 수를 빼고 담기 때문에 index 가 어디에서 차이날지 모름.
// 하여 답안지의 배열 처리할 idx 변수 선언
int idx = 0;
// 배열의 길이만큼 도는 for
for (int i=0; i < arr.length ; i++) {
// 제일 작은수와 배열의 값이 같으면 답안지에 세팅되지 않도록 continue 처리
if(arr[i] == min) continue;
// 답안지 세팅
answer[idx++] = arr[i];
}
return answer;
}
}
📝 채점
⏱ 소요시간 및 후기
소요시간 20분
테스트 1번의 채점 결과가 거슬린다...
문제풀이에 어려웠던 부분은 없었다
728x90
'Programmers > Level1' 카테고리의 다른 글
[Programmers Level 1] 행렬의 덧셈 정답 및 문제 풀이 (0) | 2021.06.14 |
---|---|
[Programmers Level 1] 시저암호 정답 및 문제 풀이 (0) | 2021.06.08 |
[Programmers Level 1] 로또의 최고 순위와 최저 순위 정답 및 문제 풀이 (0) | 2021.06.01 |
[Programmers Level 1] 하샤드 수 정답 및 문제 풀이 (0) | 2021.05.31 |
[Programmers Level 1] 3진법 뒤집기 정답 및 문제 풀이 (0) | 2021.05.30 |