이번에도 ㄹ자형 알고리즘인데 다른 것은 다이해가가는데 p=l, l=m, m=p의 데이터 교환과정이 헷갈리더라구요 설명과 디버깅 부탁드려요
안녕하세요.
180쪽 알고리즘의 이해 설명처럼
1행은 1열에서 시작해서 5열까지 열이 1씩 증가하면서 값을 저장합니다.
2행은 5열에서 시작해서 1열까지 열이 -1씩 증가하면서 값을 저장합니다.
다시 3행은 1행처럼 1열에서 시작해서 5열까지 열이 1씩 증가하면서 값을 저장합니다.
즉 행이 바뀔 때마다 열의 시작과 끝 위치가 서로 바뀌는 것이죠.
그래서 행이 바뀔 때마다, 즉 열이 5번 반복된 이후 열의 시작 위치가 저장되는 변수 L과 열의 끝 위치가 저장되는 변수 M의 값을 서로 바꾸는 것이죠.
반복문이 L부터 M까지 N만큼 증가할 때
1행은 L이 1, M이 5, N이 1이 되어 1~5까지 1씩 증가하면서 반복
L와 M의 값을 서로 바꾸는데 한번에 변경이 안되므로
L의 값을 임시변수 P에 넣고, P=L
M의 값을 L에 넣고, L=M
P의 값을 M에 넣으며, M=P
L과 M의 값이 서로 바뀌는 것이죠.
2행은 L이 5, M이 1, N이 -1이 되어 5~1까지 -1씩 증가하면서 반복
위 과정을 5행이 될 때가지 진행하게 되는 것이죠.
오늘도 즐거운 하루 되세요.
"-
*2015-04-13 09:53:40
안녕하세요.
180쪽 알고리즘의 이해 설명처럼
1행은 1열에서 시작해서 5열까지 열이 1씩 증가하면서 값을 저장합니다.
2행은 5열에서 시작해서 1열까지 열이 -1씩 증가하면서 값을 저장합니다.
다시 3행은 1행처럼 1열에서 시작해서 5열까지 열이 1씩 증가하면서 값을 저장합니다.
즉 행이 바뀔 때마다 열의 시작과 끝 위치가 서로 바뀌는 것이죠.
그래서 행이 바뀔 때마다, 즉 열이 5번 반복된 이후 열의 시작 위치가 저장되는 변수 L과 열의 끝 위치가 저장되는 변수 M의 값을 서로 바꾸는 것이죠.
반복문이 L부터 M까지 N만큼 증가할 때
1행은 L이 1, M이 5, N이 1이 되어 1~5까지 1씩 증가하면서 반복
L와 M의 값을 서로 바꾸는데 한번에 변경이 안되므로
L의 값을 임시변수 P에 넣고, P=L
M의 값을 L에 넣고, L=M
P의 값을 M에 넣으며, M=P
L과 M의 값이 서로 바뀌는 것이죠.
2행은 L이 5, M이 1, N이 -1이 되어 5~1까지 -1씩 증가하면서 반복
위 과정을 5행이 될 때가지 진행하게 되는 것이죠.
오늘도 즐거운 하루 되세요.
"