코린이의 소소한 공부노트

[LeetCode/Easy] 2200. Find All K-Distant Indices in an Array 본문

코딩테스트 풀이/JAVA

[LeetCode/Easy] 2200. Find All K-Distant Indices in an Array

무지맘 2023. 4. 27. 21:18

1. Input

1) int[] nums

2) int key

3) int k

 

2. Output

1) 다음 조건을 만족하는 요소의 인덱스를 담은 리스트를 반환

- [i-k, i+k]번째에 key가 있어야 한다.

- 인덱스는 오름차순으로 정렬되어야 한다.

 

3. Constraint

1) 1 <= nums.length <= 1000

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

3) keynums의 요소 중 1개이다.

4) 1 <= k <= nums.length

 

4. Example

Input: nums = [3,4,9,1,3,9,5], key = 9, k = 1 -> Output: [1,2,3,4,5,6]

설명: 2번째, 5번째 요소가 key이므로 [2-1.2+1], [5-1,5+1] = [1,6]이 리스트에 담긴다.

 

5. Code

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

class Solution {
    public List<Integer> findKDistantIndices(int[] nums, int key, int k) {
        List<Integer> list = new ArrayList<>();
        for(int i=0 ; i<nums.length ; i++){
            for(int j=Math.max(0,i-k) ; j<Math.min(nums.length,i+k+1) ; j++)
                if(nums[j]==key){
                    list.add(i); break;
                }
        }
        return list;
    }
}

- nums[i]==key일 때 인덱스를 저장하려고했지만, 그 경우에는 시간 초과가 나온다.