276p에서
Left에서 Right갈때는 -1이고
왜 Right에서 Left갈때는 +1이 되는지 궁금합니다.
28op에서 안쪽 반복문이 왜 i-1인지 왜 -1만큼 더해주는지 궁금합니다.
317p에서 1번답이 <= 인지 < 답은 안되는지 궁금합니다.
안녕하세요.
1)
위쪽 반복문을 보면
i = Left, Right-1, 1로 i는 Left에서 시작하여 Right-1이 될 때까지 1씩 증가합니다. 즉 +1씩 이동하는 것이죠.
아래쪽 반복문을 보면
i = Right, Left+1, -1로 i는 Right에서 시작하여 Left+1이 될 때까지 1씩 감소합니다. 즉 -1씩 이동하는 것이죠.
2)
반복문의 반복 변수가 반복문 이후에 사용되는 경우의 설명이 280쪽 사이드 전문가의 조언에 언급되어 있습니다.
반복문은 증가값을 적용한 후 종료값과 비교하는데, 이로 인해 반복문을 벗어날 때는 증가값이 한 번 더 적용된 상태에서 빠져나가게 됩니다. 예를 들어 k값은 i-1부터 1까지 -1씩 증가하므로 반복문이 종료되는 기준은 k가 1이 될 때이지만 증가값 -1이 종료될 때 한 번 더 적용되어 실제 반복문을 빠져나올 때는 k는 1이 아닌 0이 됩니다. 이 변수를 반복문 이후에 사용하므로 원래 원하는 값이 0으로 만들어주기 위해 A[K+1]을 하는 것이죠. 반복문이 마지막까지 진행된 상태에 대한 예이지만 중간이 끝나는 경우에도 증가값이 먼저 적용된 상태에서 반복문을 진입하므로 같은 맥락입니다.
3)
<=와 <는 차이가 있습니다.
예를 들어 <= 와 같이 같은 경우가 포함되면 같을 때까지 진행되지만 <는 작을 때까지만 진행되므로 < 보다 <= 경우가 한 번 더 수행하게 됩니다.
오늘도 즐거운 하루 되세요.
-
*2017-09-19 09:31:55
안녕하세요.
1)
위쪽 반복문을 보면
i = Left, Right-1, 1로 i는 Left에서 시작하여 Right-1이 될 때까지 1씩 증가합니다. 즉 +1씩 이동하는 것이죠.
아래쪽 반복문을 보면
i = Right, Left+1, -1로 i는 Right에서 시작하여 Left+1이 될 때까지 1씩 감소합니다. 즉 -1씩 이동하는 것이죠.
2)
반복문의 반복 변수가 반복문 이후에 사용되는 경우의 설명이 280쪽 사이드 전문가의 조언에 언급되어 있습니다.
반복문은 증가값을 적용한 후 종료값과 비교하는데, 이로 인해 반복문을 벗어날 때는 증가값이 한 번 더 적용된 상태에서 빠져나가게 됩니다. 예를 들어 k값은 i-1부터 1까지 -1씩 증가하므로 반복문이 종료되는 기준은 k가 1이 될 때이지만 증가값 -1이 종료될 때 한 번 더 적용되어 실제 반복문을 빠져나올 때는 k는 1이 아닌 0이 됩니다. 이 변수를 반복문 이후에 사용하므로 원래 원하는 값이 0으로 만들어주기 위해 A[K+1]을 하는 것이죠. 반복문이 마지막까지 진행된 상태에 대한 예이지만 중간이 끝나는 경우에도 증가값이 먼저 적용된 상태에서 반복문을 진입하므로 같은 맥락입니다.
3)
<=와 <는 차이가 있습니다.
예를 들어 <= 와 같이 같은 경우가 포함되면 같을 때까지 진행되지만 <는 작을 때까지만 진행되므로 < 보다 <= 경우가 한 번 더 수행하게 됩니다.
오늘도 즐거운 하루 되세요.