안녕하세요.
알고리즘이 이해가 되지 않을 경우 가장 효율적인 방법은
우선 빈 괄호를 모두 채운 상태에서 차분히 디버깅을 수행해 본 후 결과를 확인해 보는 것입니다.
이렇게 과정을 몇 번 수행하다 보면 전체적은 흐름을 파악할 수 있고 이로 인해 어떤 문제를 해결하는 지를 파악할 수 있습니다.
이 알고리즘은 1234를 입력하면 1,234를 출력하는 알고리즘입니다.
즉 뒤에서부터 4번째 자리마다 쉼표(,)를 추가하는 알고리즘입니다.
또 하나 중요한 것은 A 배열은 0부터 시작하므로 A(0)에는 0, A(1)에는 1, A(2)에는 2, .... A(9)에는 9가 저장되어 있다는 것입니다.
M에 1234가 입력되었다고 가정하면
i가 0부터 시작하므로
(i+1) % 4는 나머지가 2입니다. 0이 아니라 ⑨번 이후를 처리하여
K는 4
S(i) = A(K), 즉 S(0) = A(4), 즉 S(0) = 4가 저장되고
M=M/10에 의해 M은 123이 되며
i는 1 증가하여 2가 됩니다.
이 과정을 M이 0이 될때까지 진행하다가 i가 3일 때는 는 (i+1) % 4가 0이 되므로
S(3)에는 ","가 저장됩니다.
결국 S(0)에는 4, S(1)에는 3, S(2)에는 2, S(3)에는 ",", S(4)에는 1이 저장된 후
거꾸로 출력이 되어
1,234가 출력되게 됩니다.
오늘도 즐거운 하루 되세요.
-
*2016-01-15 09:56:53
안녕하세요.
알고리즘이 이해가 되지 않을 경우 가장 효율적인 방법은
우선 빈 괄호를 모두 채운 상태에서 차분히 디버깅을 수행해 본 후 결과를 확인해 보는 것입니다.
이렇게 과정을 몇 번 수행하다 보면 전체적은 흐름을 파악할 수 있고 이로 인해 어떤 문제를 해결하는 지를 파악할 수 있습니다.
이 알고리즘은 1234를 입력하면 1,234를 출력하는 알고리즘입니다.
즉 뒤에서부터 4번째 자리마다 쉼표(,)를 추가하는 알고리즘입니다.
또 하나 중요한 것은 A 배열은 0부터 시작하므로 A(0)에는 0, A(1)에는 1, A(2)에는 2, .... A(9)에는 9가 저장되어 있다는 것입니다.
M에 1234가 입력되었다고 가정하면
i가 0부터 시작하므로
(i+1) % 4는 나머지가 2입니다. 0이 아니라 ⑨번 이후를 처리하여
K는 4
S(i) = A(K), 즉 S(0) = A(4), 즉 S(0) = 4가 저장되고
M=M/10에 의해 M은 123이 되며
i는 1 증가하여 2가 됩니다.
이 과정을 M이 0이 될때까지 진행하다가 i가 3일 때는 는 (i+1) % 4가 0이 되므로
S(3)에는 ","가 저장됩니다.
결국 S(0)에는 4, S(1)에는 3, S(2)에는 2, S(3)에는 ",", S(4)에는 1이 저장된 후
거꾸로 출력이 되어
1,234가 출력되게 됩니다.
오늘도 즐거운 하루 되세요.