294쪽 순서도를 보면 10번에 A[K+1] = A[K]를 하잖아요
근데 그러면 그뒤로 A[K+1]값이 A[K]로 들어가야 할거 같은데 그런 식이 없습니다
A[K] = KEY를 안해주는 이유는 뭔가요?
그렇게되면 예를들어 3 1 2 5가 저장되어있다 칠때, 3 3 2 5 가 되는게 아닌가요?ㅠㅠ KEY인 1을 왼쪽으로 안옮겼으니까요.
그리고 반복문이 끝나면 11번에 A[K+1] = KEY를 하던데 KEY는 정렬할수록 오른쪽으로 옮겨지는걸로 알고있는데 이렇게하면 맨처음인 애가 KEY가 돼버리지 않나요?
설명 부탁드립니다ㅠㅠㅠ
안녕하세요 길벗수험서 운영팀입니다.
근데 그러면 그뒤로 A[K+1]값이 A[K]로 들어가야 할거 같은데 그런 식이 없습니다
A[K] = KEY를 안해주는 이유는 뭔가요?
그렇게되면 예를들어 3 1 2 5가 저장되어있다 칠때, 3 3 2 5 가 되는게 아닌가요?ㅠㅠ KEY인 1을 왼쪽으로 안옮겼으니까요.
[답변]
11번이 그 역할을 하고 있습니다.
말씀하신대로 3, 1, 2, 5라는 수가 되어있다고 가정했을 때, key에는 1이 들어갈 것이고, a[k]>key는 3>1이 될 것입니다. Yes가 되므로, a[2]=3이 되고 반복문은 종료됩니다. 이 때 k는 최종값까지 수행한 후 마지막에 증가값(-1)을 더한 0을 갖고 있게 됩니다. (294쪽 전문가의 조언 참조)
때문에 11번 a[k+1]=key는 a[1]=1이되어 1, 3, 2, 5가 되는 것이죠.
그리고 반복문이 끝나면 11번에 A[K+1] = KEY를 하던데 KEY는 정렬할수록 오른쪽으로 옮겨지는걸로 알고있는데 이렇게하면 맨처음인 애가 KEY가 돼버리지 않나요?
[답변]
9번 조건문의 No의 위치를 다시 한 번 파악해보세요. for문을 벗어나는 방향으로 화살표가 가고 있음을 보실 수 있습니다. 즉 a[k]가 key보다 작거나 같은 경우 그 즉시 8번 반복문이 종료되고 11번으로 가게 되서 그런 경우는 발생하지 않게 되죠.
행복한 하루되세요 :)
-
관리자2019-09-25 15:32:13
안녕하세요 길벗수험서 운영팀입니다.
근데 그러면 그뒤로 A[K+1]값이 A[K]로 들어가야 할거 같은데 그런 식이 없습니다
A[K] = KEY를 안해주는 이유는 뭔가요?
그렇게되면 예를들어 3 1 2 5가 저장되어있다 칠때, 3 3 2 5 가 되는게 아닌가요?ㅠㅠ KEY인 1을 왼쪽으로 안옮겼으니까요.
[답변]
11번이 그 역할을 하고 있습니다.
말씀하신대로 3, 1, 2, 5라는 수가 되어있다고 가정했을 때, key에는 1이 들어갈 것이고, a[k]>key는 3>1이 될 것입니다. Yes가 되므로, a[2]=3이 되고 반복문은 종료됩니다. 이 때 k는 최종값까지 수행한 후 마지막에 증가값(-1)을 더한 0을 갖고 있게 됩니다. (294쪽 전문가의 조언 참조)
때문에 11번 a[k+1]=key는 a[1]=1이되어 1, 3, 2, 5가 되는 것이죠.
그리고 반복문이 끝나면 11번에 A[K+1] = KEY를 하던데 KEY는 정렬할수록 오른쪽으로 옮겨지는걸로 알고있는데 이렇게하면 맨처음인 애가 KEY가 돼버리지 않나요?
[답변]
9번 조건문의 No의 위치를 다시 한 번 파악해보세요. for문을 벗어나는 방향으로 화살표가 가고 있음을 보실 수 있습니다. 즉 a[k]가 key보다 작거나 같은 경우 그 즉시 8번 반복문이 종료되고 11번으로 가게 되서 그런 경우는 발생하지 않게 되죠.
행복한 하루되세요 :)