해커랭크 - Minimum Swaps 2
풀이전략
: 예시의 설명을 그대로 믿지 마라...
- 문제를 보면 어차피 1 ~ n번까지 인덱스 순으로 나열하는 문제이다.
인덱스 증가하면서 지정한 위치와 swap이 일어나는 식으로 하면
2 3 4 1 5 라면
3 2 4 1 5
3 2 1 4 5 // 인데 인덱스가 증가하는 방식이면
지금 인덱스는 4를 가리키는데 1과 3 swap을 못하게 된다.
이 점에 유의하면서 규칙성을 찾아보자.
해커랭크에서..알게 된점.
나만의 방법으로 적용했을때, 답안과 문제 없다면 그걸로 접근하자!
소스코드
int minimumSwaps(vector<int> arr) {
int cnt = 0;
for(int i = 0; i < arr.size();)
{
int n = arr[i];
if(n - 1 != i)
{
cnt++;
swap(arr[i], arr[n -1]);
}
else
{
i++;
}
}
return cnt;
}
Author And Source
이 문제에 관하여(해커랭크 - Minimum Swaps 2), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://velog.io/@kwt0124/해커랭크-Minimum-Swaps-2
저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
나만의 방법으로 적용했을때, 답안과 문제 없다면 그걸로 접근하자!
int minimumSwaps(vector<int> arr) {
int cnt = 0;
for(int i = 0; i < arr.size();)
{
int n = arr[i];
if(n - 1 != i)
{
cnt++;
swap(arr[i], arr[n -1]);
}
else
{
i++;
}
}
return cnt;
}
Author And Source
이 문제에 관하여(해커랭크 - Minimum Swaps 2), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@kwt0124/해커랭크-Minimum-Swaps-2저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)