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 |
Tags
- 비전공자 #자바공부 #혼자공부하는자바 #혼공자 #자바 #기록 #정리
- 정리
- 데이터베이스
- 정처기실기
- 기록
- javaAlgorithm
- 데이터베이스실무
- java
- 자바알고리즘
- python
- 개발자
- programmers
- 정보처리기사
- github
- 비전공자 #코딩공부 #혼자공부하는자바 #혼공자 #자바 #정리 #기록
- 혼자공부하는자바
- 정처기
- 수제비
- GIT
- 자바
- 혼공자
- 비전공자
- Algorithm
- 파이썬
- 음악
- 정보처리기사실기
- 코딩테스트
- 알고리즘
- javascript
- 비전공자 #코딩공부 #혼자공부하는자바 #혼공자 #자바 #기록 #정리
Archives
- Today
- Total
This is a blog.
제일 작은 수 제거하기 본문
문제 설명
정수를 저장한 배열, 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] |
내가 푼 답 - Java
import java.util.Arrays;
class Solution {
public int[] solution(int[] arr) {
int min = Arrays.stream(arr).min().getAsInt();
int[] answer =Arrays.stream(arr).filter(element -> element != min).toArray();
if(answer.length == 0) answer = new int[]{-1};
return answer;
}
}
# 내가 푼 답2 - Java
import java.util.ArrayList;
import java.util.Collections;
class Solution {
public int[] solution(int[] arr) {
ArrayList<Integer> integerArray = new ArrayList<>(arr.length);
for (int i : arr)
integerArray.add(i);
int min = Collections.min(integerArray);
// integerArray.remove(index); => 배열 index의 값을 삭제.
// integerArray.remove(Integer.valueOf(value)); => 배열 안에서 value에 해당하는 값을 삭제.
integerArray.remove(Integer.valueOf(min));
int[] answer = integerArray.stream().mapToInt(i -> i).toArray();
if(answer.length == 0) answer = new int[]{-1};
return answer;
}
}
코딩테스트 후기
1) stream()은 코드를 간략하게 쓸 수 있으나 실행 속도가 느리다는 단점이 있다.
2) # 내가 푼 답2 - Java는 ArrayList로 풀었다. ArrayList를 int[]로 변경할 때 stream()을 사용하고 싶지 않았다. 그러나 int[] 와 같은 기본형(Primitive) 타입은 toArray()만으로 변환이 되지 않아 하는 수 없이 사용;; 첫 번째 코드는 stream()을 두 번, 두 번째 코드는 stream()을 한 번 쓴 걸로 만족해야 하나. 하하하.
3) List<int[]> integerArray = Arrays.asList(arr); 로 풀고 싶었으나 remove가 안 되는 문제로 ArrayList<Integer>로 바꿨다.
'RECORD > Programmers' 카테고리의 다른 글
| 가운데 글자 가져오기 (0) | 2023.03.24 |
|---|---|
| 없는 숫자 더하기 (2) | 2023.03.24 |
| 음양 더하기 (0) | 2023.03.23 |
| 핸드폰 번호 가리기 (0) | 2023.03.23 |
| 나누어 떨어지는 숫자 배열 (0) | 2023.03.23 |
Comments