개발 일지
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합니다.