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


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;
}

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

  • 2016년 02월 13일에 작성됨

조회수 165


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;
}

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

  • 2016년 02월 13일에 작성됨

로그인이 필요한 기능입니다.

Hashcode는 개발자들을 위한 무료 QnA사이트 입니다. 작성한 답변에 다른 개발자들이 댓글을 작성하거나 좋아요/싫어요를 할 수 있기 때문에 계정을 필요로 합니다.
► 로그인
► 계정만들기
Close