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
- two pointers
- implement
- Math
- 자바
- Number Theory
- Data Structure
- array
- greedy
- Binary Search
- sorting
- 코딩테스트
- Counting
- database
- Stack
- Binary Tree
- dynamic programming
- SQL
- hash table
- java
- string
- 코테
- simulation
- Class
- geometry
- Method
- Matrix
- bit manipulation
- 구현
- 파이썬
- Tree
Archives
- Today
- Total
코린이의 소소한 공부노트
[LeetCode/Medium] 2149. Rearrange Array Elements by Sign 본문
1. Input
1) 길이가 짝수인 int 배열 nums
2) nums의 원소들은 양수 또는 음수
2. Output
1) 조건에 맞게 정렬된 int 배열
2) 새 배열을 만들어서 반환해도 상관없음
3) 배열은 양수로 시작해야 함
4) 인접한 원소들은 부호가 반대여야 함
5) 부호가 같은 숫자끼리의 순서는 바뀌면 안 됨
- {1, -1, -3, 2}였다면 정렬 후 {1, -1, 2, -3}이어야 함
- -1이 -3보다 크다고 더 오른쪽에 위치하는 게 아니라, 처음 그대로의 순서를 따라야 한다는 뜻
3. Constraint
1) 2 <= nums.length <= 2 * 105
2) nums.length는 짝수
3) 1 <= |nums[i]| <= 105
4) nums에 들어있는 양수와 음수의 개수는 똑같음
4. Example
Input: nums = {3,1,-2,-5,2,-4}
Output: {3,-2,1,-5,2,-4}
설명:
부호 별로 순서대로 숫자를 나열해보면 양수: {3,1,2}, 음수: {-2,-5,-4}
조건에 맞게 나열하면 {3,-2,1,-5,2,-4}만 답이 될 수 있음
{1,-2,2,-5,3,-4}, {3,1,2,-2,-5,-4} 등은 1개 이상의 조건을 만족시키지 않으므로 답이 될 수 없음
5. Code
1) 첫 코드(2022/08/18)
List<Integer> neg = new ArrayList();
List<Integer> pos = new ArrayList();
for(int i=0 ; i<nums.length ; i++){
if(nums[i]>0)
pos.add(nums[i]);
else
neg.add(nums[i]);
}
for(int i=0 ; i<nums.length/2 ; i++){
nums[2*i] = pos.get(i);
nums[2*i+1] = neg.get(i);
}
return nums;
- 양수와 음수를 구분한 후 짝수 인덱스에 양수를, 홀수 인덱스에 음수를 넣음
'코딩테스트 풀이 > JAVA' 카테고리의 다른 글
[LeetCode/Medium] 1561. Maximum Number of Coins You Can Get (0) | 2022.08.19 |
---|---|
[LeetCode/Medium] 1630. Arithmetic Subarrays (0) | 2022.08.19 |
[LeetCode/Medium] 2079. Watering Plants (0) | 2022.08.18 |
[LeetCode/Medium] 1769. Minimum Number of Operations to Move All Balls to Each Box (0) | 2022.08.17 |
[LeetCode/Medium] 1828. Queries on Number of Points Inside a Circle (0) | 2022.08.17 |