본문 바로가기
VBA

[VBA_달팽이알고리즘] 단순반복 VS 재귀함수

by 일등미노왕국 2021. 9. 6.

알고리즘을 굳이 vba로 할 필요가 있을까 하는 분들이 계신다.

엑셀의 단순 반복을 피하기 위해 VBE를 통한 VBA를 구현을 하고 계신 분들은 분명 그럴 수 있다. 허나 내가 이 블로그를 운영하고 어줍지 않게 글을 써내려가는 이유는 한정된 기능밖에는 사용하지 않는 분들이 지식의 목마름(?) 같은 것을 해결하시기에 필요한 블로그가 되고 싶었기에 알고리즘 문제에 좀 더 열을 내는것 같다.

 

알고리즘 문제를 풀게되면 일단 For이나 For each상에서의 셀의 움직임을 좀 더 정확하게 이해하고 구현할 수 있다.

그래서 프로그램 언어를 배우면 그렇게 [*]을 찍어내고 초2때도 그리 외웠던 구구단을 For문으로 그리 작성하나 보다

코드를 보면 [ㄱ]자 형태로 먼저 만들고 [ㄴ]자 형태로 아래에서 위쪽으로 올라오면서 숫자를 출력하게 된다. 그러기에 [ㄱ] 자 형태는 열방향이 끝나면 행방향으로 +1씩 하면서 열과 행이 바뀌지만 [ㄴ] 자 형태에서는 -1씩 행과 열이 감소하면서 숫자를 출력함으로 전환변수에 (-1)을 곱하여 방향을 바꿔주여야 한다.

 

또한 열과 행의 진행 방향으로 봤을 때 

전체열에 번호 출력
전체행
-2
전체열 -2 전체행
-1
열 -3 행 -3
전체열 -1

이 되기 때문에 각 열과 행에서 X변수의 값을 열방향과 행방향일 때를 유념하여 사용해야 한다.

오늘보다 더 나은 개발자가 되길 희망하며....

달팽이로직(21.09.06).xlsm
0.02MB

댓글