이번 로직을 풀기 위해서는 행과 열의 크기 변화가 어떻게 되는지 정확하게 알아야 풀 수 있다. 모든 로직들이 그렇지만 결국 for문의 변수값 하나로 인해서 원하는 결과값과 그렇지 않은 결과값이 나오게 된다.
1,1 | 1,2 | 1,3 |
2,1 | 2,2 | 2,3 |
3,1 | 3,2 | 3,3 |
(1,1)이 출력 후 다음 값은 (1,2)에 출력이 되고, 다음은 (2,1)이 출력이 되어야 한다. (1,2) -> (2,1) 의 변화는 행값은 +1이고 열값은 -1이 된 위치이다. 반복횟수는 1열은 한번 / 2열은 2번 / 3열은 3번이기에 다중 For문 사용시 두번째 For문은 첫번째 변수 값에 종속되어 진다.
이게 이해가 되면 왼쪽부터 긴 대각선 까지 구하는 것이 이해가 될것이다.
1 | 2 | 4 |
3 | 5 | |
6 |
6까지 출력 후 카운트 값(Cnt)은 계속 증가하지만 영역은 행의 값은 위치가 상단이 1이라고 볼때 거기서 한칸 내려오는 +1위치이고 반복해야 할 값이 3이면 2까지 반복해야 함으로 N-1까지 반복하여야 한다.
이런 로직을 풀때는 항상 1사이클을 볼 수 있는 가장 최소의 단위부터 반복문으로 돌려보면서 오류를 잡아나가는 것이 해결 방법이다.
'VBA' 카테고리의 다른 글
[VBA] 다양한 방법으로 영역선택하기 (0) | 2021.10.16 |
---|---|
[ VBA_통합] 개별데이터 통합하기 (0) | 2021.09.14 |
[VBA_로직] 데칼코마니 로직 / 삼각형 로직 (0) | 2021.09.08 |
[VBA_고유값] Dictionary+ArrayList (0) | 2021.09.07 |
[VBA_달팽이알고리즘] 단순반복 VS 재귀함수 (0) | 2021.09.06 |
댓글