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
- java
- Binary Tree
- database
- SQL
- Math
- Counting
- geometry
- 자바
- Stack
- two pointers
- 코딩테스트
- 구현
- Matrix
- 파이썬
- Tree
- simulation
- sorting
- array
- Data Structure
- Binary Search
- Method
- bit manipulation
- implement
- hash table
- 코테
- Number Theory
- dynamic programming
- string
- greedy
- Class
Archives
- Today
- Total
코린이의 소소한 공부노트
[프로그래머스/Lv.1] 나누어 떨어지는 숫자 배열 본문
1. Input
1) int 배열 arr
2) 자연수 divisor
2. Output
1) arr의 요소들 중 divisor로 나누어 떨어지는 값을 오름차순으로 정렬한 배열
2) divisor로 나누어 떨어지는 요소가 없다면 배열에 –1을 담아 반환
3. Constraint
1) arr은 자연수를 담은 배열
2) arr에 중복되는 숫자는 없음
3) divisor는 자연수
4) arr은 길이 1 이상인 배열
4. Example
Input: arr={10,9,7,5}, divisor=5 -> Output: {5,10}
Input: arr={3,2,5}, divisor=10 -> Output: {-1}
5. Code
1) 첫 코드(2022/??)
import java.util.Arrays;
int[] answer;
String nums = "";
for(int i=0 ; i<arr.length ; i++)
if(arr[i]%divisor == 0) nums += arr[i] + " ";
if(nums == "") return new int[] {-1};
String[] s = nums.split(" ");
answer = new int[s.length];
for(int i=0 ; i<s.length ; i++)
answer[i] = Integer.parseInt(s[i]);
Arrays.sort(answer);
return answer;
2) 엄청 빨라진 코드(2022/11/26)
Arrays.sort(arr);
ArrayList<Integer> list = new ArrayList<Integer>();
for(int n : arr)
if(n%divisor==0) list.add(n);
if(list.size()==0) list.add(-1);
int[] answer = new int[list.size()];
for(int i=0 ; i<answer.length ; i++)
answer[i] = list.get(i);
return answer;
- 특정 부분은 2번이 엄~청 느렸는데, 어떤 케이스인지 알 수 없었음
'코딩테스트 풀이 > JAVA' 카테고리의 다른 글
[프로그래머스/Lv.1] 가운데 글자 가져오기 (0) | 2022.11.26 |
---|---|
[프로그래머스/Lv.1] 같은 숫자는 싫어 (0) | 2022.11.26 |
[프로그래머스/Lv.1] 두 정수 사이의 합 (0) | 2022.11.26 |
[프로그래머스/Lv.1] 문자열 내 p와 y의 개수 (0) | 2022.11.25 |
[프로그래머스/Lv.1] 문자열 내림차순으로 배치하기 (0) | 2022.11.25 |