int형 배열의 순서를 뒤집고 싶은데 어떻게 할수있을까요?

조회수 1491회

int형 배열의 순서를 뒤집으려고 메소드에서

for(int i = 0; i < validData.length; i++)
{
    int temp = validData[i];
    validData[i] = validData[validData.length - i - 1];
    validData[validData.length - i - 1] = temp;
}

이렇게 해줬는데 배열의 순서는 뒤집어지지 않았어요. 뭐가 잘못된거죠?

1 답변

  • 좋아요

    0

    싫어요
    채택 취소하기

    배열을 뒤집을때는 가운데 포인트를 잡고 양끝을 Swap해주면 됩니다.

    for(int i = 0; i < validData.length / 2; i++)
    {
        int temp = validData[i];
        validData[i] = validData[validData.length - i - 1];
        validData[validData.length - i - 1] = temp;
    }
    

    이렇게하시면 됩니다. 위에서 잘못된것은 양끝의 원소를 스와핑해줄때 중간 이후부터는 바꿨던 부분을 다시또바꾸게 되서 스와핑을 두번해 결국 원상복귀되기때문입니다.

답변을 하려면 로그인이 필요합니다.

Hashcode는 개발자들을 위한 무료 QnA 사이트입니다. 계정을 생성하셔야만 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)

ᕕ( ᐛ )ᕗ
로그인이 필요합니다

Hashcode는 개발자들을 위한 무료 QnA사이트 입니다. 계정을 생성하셔야만 글을 작성하실 수 있습니다.