계속 안풀려서 디버깅을 억지로 해보고 있는데요.
i NMG CNT BAN
2 0 0
1
----------------------------------------여기서 나머지가 2니까 2배열에 1반이 되고
i NMG CNT BAN
2 0 0
1
1
1 3
2 4 2
2
---------------------------------------여기서 나머지가 4니까 4위치에 2반이 되고
i NMG CNT BAN
2 0 0
1
1
1 3
2 4 2
2
1 5
2 6 3
1
3
-------------------------------------------여기서 나머지가 6이니까 6위치에 1반을 했어요.
근데 문제는 여기서 부터 안된다는거에요ㅠㅠㅠ
i NMG CNT BAN
2 0 0
1
1
1 3
2 4 2
2
1 5
2 6 3
1
3
1 7
1
2 2
1 3
-> 세번째 자리는 비어있는데 반복문이니까 i를 2까지 해야 하는 거 아닌가요?
2 4
1 5
2 6
1 7
1
..........이런식으로 계속됩니다.
제가 어디서 잘못 이해하고 있는 지 알려주세요.
그림으로 했을 때는
A(3) 2
A(1) 1
A(5) 2
이렇게 되는데 왜 알고리즘 따라서 해보면 이게 안나오는지 궁금합니다.....
안녕하세요.
i NMG CNT BAN
2 0 0
1
1
1 3
2 4 2
2
1 5
2 6 3
1
3
1 7
1
2 2
1 3
-> 세번째 자리는 비어있는데 반복문이니까 i를 2까지 해야 하는 거 아닌가요?
NMG가 3이 될 때 i는 2인 상태입니다.
왜냐하면, A(2)일 때 0이 아니므로 i=i-1이 되어 i가 1이 된 상태로 반복문을 다시 수행하면 1이 증가되어 i가 2가 된 상태로 다시 반복문을 수행합니다. 그래서 i가 2인 상태에서 NMG=NMG+1이 수행되어 NMG는 3이 됩니다.
이제 A(NMG), 즉 A(3)이 비어 있으므로 0입니다. 그래서 A(NMG)<>0 이 NO가 되어서
반복문 위쪽으로 가죠. 그럼 i는 1이 증가되어 3이 되므로 더이상 반복문을 수행하지 않고 빠져나옵니다.
이제 11번 동그라미로 이동하여 BAN이 증가되어 2가 된 후 A(NMG), 즉 A(3)에 BAN, 즉 2를 저장합니다.
그래서 현재 배열의 상태는 아래와 같습니다.
0 1 2 2 0 1
그리고 디버깅 표 상태는 다음과 같습니다.
i NMG CNT BAN
2 0 0
1
1
1 3
2 4 2
2
1 5
2 6 3
1
3
1 7
1
2 2
1 3 4 2
2
오늘도 즐거운 하루 되세요.
"-
*2014-09-11 09:54:36
안녕하세요.
i NMG CNT BAN
2 0 0
1
1
1 3
2 4 2
2
1 5
2 6 3
1
3
1 7
1
2 2
1 3
-> 세번째 자리는 비어있는데 반복문이니까 i를 2까지 해야 하는 거 아닌가요?
NMG가 3이 될 때 i는 2인 상태입니다.
왜냐하면, A(2)일 때 0이 아니므로 i=i-1이 되어 i가 1이 된 상태로 반복문을 다시 수행하면 1이 증가되어 i가 2가 된 상태로 다시 반복문을 수행합니다. 그래서 i가 2인 상태에서 NMG=NMG+1이 수행되어 NMG는 3이 됩니다.
이제 A(NMG), 즉 A(3)이 비어 있으므로 0입니다. 그래서 A(NMG)<>0 이 NO가 되어서
반복문 위쪽으로 가죠. 그럼 i는 1이 증가되어 3이 되므로 더이상 반복문을 수행하지 않고 빠져나옵니다.
이제 11번 동그라미로 이동하여 BAN이 증가되어 2가 된 후 A(NMG), 즉 A(3)에 BAN, 즉 2를 저장합니다.
그래서 현재 배열의 상태는 아래와 같습니다.
0 1 2 2 0 1
그리고 디버깅 표 상태는 다음과 같습니다.
i NMG CNT BAN
2 0 0
1
1
1 3
2 4 2
2
1 5
2 6 3
1
3
1 7
1
2 2
1 3 4 2
2
오늘도 즐거운 하루 되세요.
"