만약 배열이 0~7까지 원소가 이런식으로 주어져있음
arr1[8] ->
0 1 2 3 4 5 6 7 <- 이건 인덱스
a b c d e f g h <-이건 원소
여기서 이런 표가 있음
0 1 2 3 4 5 6 7
1 5 2 6 7 4 0 3
이 표는 arr1의 위치를 바꿔야하는 표고 예를들어
index 1에 해당하는 철자는 index 0으로 와야하고 index 5에 해당하는 철자는 index 1로 와야함
결과는
0 1 2 3 4 5 6 7
b f c g h e a d
이렇게 되야됨 근데 충격적이게도
이걸 swap으로만 구현해야한다고하면 어떻게 구현해야하는가? ㅋㅋㅋㅋㅋ 우에해야하노이거
간단히 생각나는건 0을 찾아서 넣어야할 위치의 숫자와 스왑, 1을 찾아서 넣어야할 위치의 숫자와 스왑... 을 6까지 반복 - dc Cpp
그러면 d f c e a h b g가 됨 결론적으론 풀 수 없는 문제인가봄 따로 버퍼를 두고 해도 안풀리네
??? - dc Cpp
처음에 01234567에서 0은 6번째로 가야하니 6과 스왑, 61234507 되고 그다음 1은 첫번째로 가야하니 스왑하면 16234507 - dc Cpp
2는 그대로 3은 맨끝으로 가야하니 16274503 - dc Cpp
이미 제자리 찾아간 숫자들은 더이상 자리가 안바뀌고 6까지 반복하면 7은 알아서 들어가있는데 왜안됨 - dc Cpp
아하 빣대갈잘갈켜줘서고맙당
좀더 효율적인 방법이 찾아보면 있을 듯도 한데 뭐 아무렴 어때 - dc Cpp