코린이의 소소한 공부노트

[LeetCode/Easy] 2460. Apply Operations to an Array 본문

코딩테스트 풀이/JAVA

[LeetCode/Easy] 2460. Apply Operations to an Array

무지맘 2023. 5. 4. 16:14

1. Input

1) int[] nums

 

2. Output

1) nums의 앞에서부터 다음 연산을 진행한 후, nums에 있는 0을 모두 배열 끝으로 옮긴 결과를 반환

- nums[i]==nums[i+1]이라면 nums[i]2배를 하고 nums[i+1]0으로 만든다.

 

3. Constraint

1) 2 <= nums.length <= 2000

2) 0 <= nums[i] <= 1000

 

4. Example

Input: nums = [1,2,2,1,1,0] -> Output: [1,4,2,0,0,0]

설명:

- nums[1]==nums[2] -> [1,4,0,1,1,0]

- nums[3]==nums[4] -> [1,4,0,2,0,0]

- nums[4]==nums[5] -> [1,4,0,2,0,0]

- 0을 모두 뒤로 옮기면 [1,4,2,0,0,0]이 된다.

 

5. Code

1) 첫 코드(2023/05/04)

class Solution {
    public int[] applyOperations(int[] nums) {
        int[] answer = new int[nums.length];
        int j = 0;
        for(int i=0 ; i<nums.length-1 ; i++){
            if(nums[i]==nums[i+1]){
                nums[i] *= 2; nums[i+1] = 0;
            }
            if(nums[i]!=0)
                answer[j++] = nums[i];
        }
        if(nums[nums.length-1]!=0)
            answer[j++] = nums[nums.length-1];
        for(int i=j ; i<nums.length ; i++)
            answer[i] = 0;
        return answer;
    }
}