오늘의 공부 키워드

2089 Find Target Indices After Sorting Array

 

2089 Find Target Indices After Sorting Array

 

문제 설명

주어진 문제는 다음과 같습니다:

0부터 시작하는 정수 배열 nums와 목표 요소 target이 주어집니다.

목표 인덱스는 nums[i] == target인 인덱스 i를 의미합니다.

nums를 오름차순으로 정렬한 후의 목표 인덱스 목록을 반환하세요. 만약 목표 인덱스가 없다면 빈 목록을 반환하세요.
반환된 목록은 오름차순으로 정렬되어 있어야 합니다.

 

 

예제

예제 1:

  • 입력: nums = [1, 2, 5, 2, 3], target = 2
  • 출력: [1, 2]
  • 설명: 정렬 후 nums는 [1, 2, 2, 3, 5]가 됩니다. nums[i] == 2인 인덱스는 1과 2입니다.

예제 2:

  • 입력: nums = [1, 2, 5, 2, 3], target = 3
  • 출력: [3]
  • 설명: 정렬 후 nums는 [1, 2, 2, 3, 5]가 됩니다. nums[i] == 3인 인덱스는 3입니다.

예제 3:

  • 입력: nums = [1, 2, 5, 2, 3], target = 5
  • 출력: [4]
  • 설명: 정렬 후 nums는 [1, 2, 2, 3, 5]가 됩니다. nums[i] == 5인 인덱스는 4입니다.

해결 방법

이 문제를 해결하기 위해 다음과 같은 단계를 따를 수 있습니다:

  1. 배열 nums를 오름차순으로 정렬합니다.
  2. 정렬된 배열에서 target 값을 갖는 인덱스를 찾아 저장합니다.
  3. 저장된 인덱스 목록을 반환합니다.

코드 구현

다음은 위 과정을 반영한 파이썬 코드입니다:

def target_indices(nums, target):
    # 1. nums를 정렬합니다.
    nums.sort()
    
    # 2. target 값을 갖는 인덱스를 저장할 리스트를 만듭니다.
    result = []
    
    # 3. 정렬된 nums에서 target 값을 찾고 인덱스를 result에 추가합니다.
    for i in range(len(nums)):
        if nums[i] == target:
            result.append(i)
    
    # 4. 결과 리스트를 반환합니다.
    return result

 

예제 테스트

위의 코드가 주어진 예제들을 제대로 처리하는지 확인해보겠습니다:

print(target_indices([1, 2, 5, 2, 3], 2))  # 예상 출력: [1, 2]
print(target_indices([1, 2, 5, 2, 3], 3))  # 예상 출력: [3]
print(target_indices([1, 2, 5, 2, 3], 5))  # 예상 출력: [4]

 

결론

이 문제는 배열을 정렬하고 목표 값을 찾는 간단한 문제입니다. 중요한 점은 정렬 후 목표 값을 찾아 인덱스를 반환하는 과정입니다. 이 과정을 통해 배열 내 목표 값의 인덱스를 효율적으로 찾을 수 있습니다.

 

 

오늘의 회고

 

  • 아주  재미있던 문제였다.
  • 문제가 점점 난이도가 있는거같다..
  • 실력만이 답이라는 사실을 기억하자

+ Recent posts