Notice
Recent Posts
Recent Comments
Link
«   2025/04   »
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
more
Archives
Today
Total
관리 메뉴

개발 일지

1460. Make Two Arrays Equal by Reversing Subarrays (부분배열을 반전하여 두 개의 배열을 동일하게 만들기) 본문

코딩 테스트/LeetCode

1460. Make Two Arrays Equal by Reversing Subarrays (부분배열을 반전하여 두 개의 배열을 동일하게 만들기)

포카리tea 2024. 11. 7. 15:55
길이가 같은 두 개의 정수 배열 target과 arr이 주어집니다. 한 단계에서 arr의 비어 있지 않은 하위 배열을 선택하고 이를 되돌릴 수 있습니다. 원하는 수의 단계를 수행할 수 있습니다. arr을 목표와 같게 만들 수 있다면 true를, 그렇지 않으면 false를 return합니다.



예시 1:

Input: target = [1,2,3,4], arr = [2,4,1,3]
출력: true
설명: 다음 단계에 따라 arr을 타겟으로 변환할 수 있습니다:
1- 역순 부분배열 [2,4,1], arr은 [1,4,2,3]이 됩니다
2- 역순 부분배열 [4,2], arr은 [1,2,4,3]이 됩니다
3- 역순 부분배열 [4,3], arr은 [1,2,3,4]가 됩니다
arr을 target으로 변환하는 방법은 여러 가지가 있지만, 이 방법만이 아닙니다.

 

예시 2:

입력: target = [7], arr = [7]
출력: true
설명: arr은 역순 없이 목표와 동일합니다.

 

예시 3:

입력: target = [3,7,9], arr = [3,7,11]
출력: false
설명: arr에는 값 9가 없으며 결코 target으로 변환될 수 없습니다.

 

 

조건:

  • target.length == arr.length
  • 1 <= target.length <= 1000
  • 1 <= target[i] <= 1000
  • 1 <= arr[i] <= 1000

 

 

정답:

public class Solution {
    public bool CanBeEqual(int[] target, int[] arr) {
        if (String.Join("", target.OrderBy(n => n)) == String.Join("", arr.OrderBy(n => n)))
        {
            return true;
        }

        return false;
    }
}

해설: 역순이라는 얘기가 나왔지만 실질적으로 arr 배열을 이용하여 target 배열을 만들 수 있다면 true, 없다면 false를 return하는 문제입니다.

그렇기 때문에 target 배열과 arr 배열이 동일한 값을 지니고 있는지 확인하면 됩니다.

고로 모두 정렬 후 비교하여 동일하다면 true 아니라면 false를 return합니다.