자료구조 및 알고리즘
반복문(For-loop)의 유한 중첩(finite nesting)?
present
2012. 1. 16. 22:38
반복문을 10번 중첩 시킬지 아니면 7번 중첩 시킬 지 알 수 없는 경우,
혹은 그만큼의 중첩이 필요한 경우에 어떻게 이를 코드로 표현할 것인가?
이 문제는 유한 집합들의 카티션 곱을 계산하는 문제와 닮았다.
한가지 해법.
Iterator를 하나의 integer 변수로 선언할 것이 아니라 여러개의 변수가 함축된 구조체 타입으로 선언하여
iterator를 움직일 때 마다 나름의 메커니즘으로 구조체의 값을 바꾸면 된다. 한 가지 메커니즘은 이진수를 작은 수부터 출력하는 방법을 구현하는 것이다. 이 구현은 하나의 반복문 안에서 값이 증가될 자리(digit)에 대한 변수를 관리하면서 자리 올림을 확인하는 방식으로 구현될 수 있다.