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 |
Tags
- 자바
- Math
- Number Theory
- two pointers
- simulation
- SQL
- hash table
- Data Structure
- greedy
- string
- Method
- 구현
- Binary Search
- geometry
- database
- Stack
- dynamic programming
- bit manipulation
- Class
- sorting
- Counting
- implement
- Tree
- Binary Tree
- Matrix
- java
- 코딩테스트
- 파이썬
- 코테
- array
Archives
- Today
- Total
코린이의 소소한 공부노트
[프로그래머스/Lv.0] 배열 만들기 3 본문
1. Input, Output, Example
-intervals을 이용해 arr의 첫 번째 구간에 해당하는 배열과 두 번째 구간에 해당하는 배열을 앞뒤로 붙여 새로운 배열을 만들어 반환
2. Constraint
1) 1 ≤ arr의 길이 ≤ 100,000
2) 1 ≤ arr의 원소 < 100
3) intervals는 항상 [[a1, b1], [a2, b2]]의 꼴로 주어지며 각 구간은 닫힌 구간이다.
4) 1 ≤ a1 ≤ b1 < arr의 길이
5) 1 ≤ a2 ≤ b2 < arr의 길이
3. Code
1) 첫 코드(2023/05/01)
import java.util.*;
class Solution {
public int[] solution(int[] arr, int[][] intervals) {
ArrayList<Integer> list = new ArrayList<>();
for(int i=0 ; i<intervals.length ; i++)
for(int j=intervals[i][0] ; j<=intervals[i][1] ; j++)
list.add(arr[j]);
int[] answer = new int[list.size()];
for(int i=0 ; i<answer.length ; i++)
answer[i] = list.get(i);
return answer;
}
}
2) 비교 코드(2023/05/01)
class Solution {
public int[] solution(int[] arr, int[][] intervals) {
int n1 = intervals[0][1] - intervals[0][0] + 1;
int n2 = intervals[1][1] - intervals[1][0] + 1;
int[] answer = new int[n1+n2];
System.arraycopy(arr,intervals[0][0],answer,0,n1);
System.arraycopy(arr,intervals[1][0],answer,n1,n2);
return answer;
}
}
- 2번이 훨씬 빠르지만, 추가 점수는 없었다.
'코딩테스트 풀이 > JAVA' 카테고리의 다른 글
[프로그래머스/Lv.0] 주사위 게임 2 (0) | 2023.05.01 |
---|---|
[프로그래머스/Lv.0] 수 조작하기 2 (0) | 2023.05.01 |
[프로그래머스/Lv.0] 특별한 이차원 배열 1 (0) | 2023.05.01 |
[프로그래머스/Lv.0] 특별한 이차원 배열 2 (0) | 2023.05.01 |
[프로그래머스/Lv.0] 부분 문자열 이어 붙여 문자열 만들기 (0) | 2023.05.01 |