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
- HashMap
- 2017 카카오 코드
- 문자열
- 순열
- 보이어무어
- Java
- Stack
- pandas
- 어려웠던 문제
- Dynamic Programming
- 튜플
- 조합
- 영문자 확인
- 최소공배수
- dfs
- 점프와 순간이동
- 완전 탐색
- 규칙찾기
- python
- 메뉴리뉴얼
- HashSet
- 후위 표기법
- 완전탐색
- 에라토스테네스의 체
- 프로그래머스
- fragment identifier
- 알고리즘
- 쿼드압축 후 개수세기
- 반복문
- 동적계획법
Archives
- Today
- Total
csmoon1010의 SW 블로그
[200512] 제일 작은 수 제거하기 - 연습문제(level1) 본문
1. 문제이해
- 정수 배열 arr에서 가장 작은 수를 제거한 answer배열 return
- 단, 빈 배열이 되면 -1을 담아 return
2. 전략
- arr.length가 1일 때 : answer배열의 크기를 1로 정하고 -1 담아 return
- arr.length가 1이 아닐 때:
(1) answer 배열 : arr.length-1의 크기
(2) min 찾기 : arr[i]와 arr[min]을 비교하며 최소값 가진 index 찾기
(3) answer에 옮기기 : min이 아닐 때만 옮김. 단, answer배열의 index 증가는 따로 관리.
3. 참고사항
- 다른 방법 : stream 이용
생성 : Arrays.stream(arr)
min값 찾기(최종 연산) : min()이용한 후 getAsInt()로 int형으로 변환
최종결과(중개연산 + 최종연산) : filter로 min이 아닌 수들만 stream에 추가 후 toArray()로 배열 변환
4. 코드
class Solution {
public int[] solution(int[] arr) {
int[] answer;
if(arr.length == 1) {
answer = new int[1];
answer[0] = -1;
}
else{
answer = new int[arr.length-1];
int min = 0;
for(int i = 0; i < arr.length; i++){ //min찾기
if(arr[i] < arr[min]) min = i;
}
int index = 0;
for(int i= 0; i < arr.length; i++){ //answer에 옮기기
if(i == min) continue;
else answer[index] = arr[i];
index++;
}
}
return answer;
}
}
'Coding Test > 프로그래머스' 카테고리의 다른 글
[200513] 최대공약수와 최소공배수 - 연습문제(level1) (0) | 2020.05.13 |
---|---|
[200513] 짝수와 홀수 - 연습문제(level1) (0) | 2020.05.13 |
[200512] 정수 제곱근 판별 - 연습문제(level1) (0) | 2020.05.12 |
[200512] 정수 내림차순으로 배치하기 - 연습문제(level1) (0) | 2020.05.12 |
[200512] 자연수 뒤집어 배열로 만들기 - 연습문제(level1) (0) | 2020.05.12 |
Comments