정보처리기능사 2017 P233 문제에서
2번 빈칸에서 왜 M을 10으로 나눈 나머지를 K에 치환하는거죠..?
3번 빈칸에서 M을 10으로 나눈 다음 그 몫을 다시 M에 치환한다. 이미 변환한 맨 마지막 자리를 제거하기 위해서이다. 1234는 123이 된다. 라고 적혀있는데 좀 더 쉽게 설명 해주실수 있나요..?
그리고 전체적인 해설 해주시면 감사하겠습니다.
ㅠㅠ
안녕하세요.
1234가 입력되면 1,234와 같이 천 단위마다 쉼표(,)를 포함해서 출력하는 알고리즘입니다.
또한 입력된 값을 뒤에서부터 한 자리씩 배열에 저장한 후 천 단위 부분에는 쉼표(,)를 저장합니다.
매 작업 횟수를 4로 나눈 나머지가 0인 경우 그 자리가 천 단위 부분이므로 쉼표(,)를 저장합니다.
이는 직접 디버깅을 수행해 보면 좀 더 쉽게 확인이 됩니다.
또한 입력된 값은 10으로 나눈 나머지를 배열에 저장하면 뒤에서부터 저장이 됩니다. 그런 다음 거꾸로 출력을 하게 되는 것이죠.
M에 1234가 입력된 경우
맨 처음 1234를 10으로 나눈 나머지(%)를 K에 저장합니다. K는 4가 됩니다.
S(i), 즉 S(0)에 A(K), 즉 A(4)를 저장합니다. 앞서 A(4)에는 4가 저장되어 있습니다. A(0)=0, A(1)=1
그런 다음 나머지 4를 제외한 값을 다시 10으로 나눠야 하므로
1234를 10으로 나눈 몫을 다음 나눠질 값인 M에 저장합니다. 이 부분이 M=M/10입니다.
이어서 i를 증가한 후 작업을 반복합니다.
이렇게 작업이 진행되면
S(0)에는 4, S(1)에는 3, S(2)에는 2, S(3)에는 쉼표(,), S(4)에는 1이 저장됩니다.
그러면 M은 0이되고
i값을 -1씩 감소시키면서 S(4) ~ S(0)까지 출력을 하면 1,234 가 출력되게 됩니다.
오늘도 즐거운 하루 되세요.
-
*2016-10-24 09:34:39
안녕하세요.
1234가 입력되면 1,234와 같이 천 단위마다 쉼표(,)를 포함해서 출력하는 알고리즘입니다.
또한 입력된 값을 뒤에서부터 한 자리씩 배열에 저장한 후 천 단위 부분에는 쉼표(,)를 저장합니다.
매 작업 횟수를 4로 나눈 나머지가 0인 경우 그 자리가 천 단위 부분이므로 쉼표(,)를 저장합니다.
이는 직접 디버깅을 수행해 보면 좀 더 쉽게 확인이 됩니다.
또한 입력된 값은 10으로 나눈 나머지를 배열에 저장하면 뒤에서부터 저장이 됩니다. 그런 다음 거꾸로 출력을 하게 되는 것이죠.
M에 1234가 입력된 경우
맨 처음 1234를 10으로 나눈 나머지(%)를 K에 저장합니다. K는 4가 됩니다.
S(i), 즉 S(0)에 A(K), 즉 A(4)를 저장합니다. 앞서 A(4)에는 4가 저장되어 있습니다. A(0)=0, A(1)=1
그런 다음 나머지 4를 제외한 값을 다시 10으로 나눠야 하므로
1234를 10으로 나눈 몫을 다음 나눠질 값인 M에 저장합니다. 이 부분이 M=M/10입니다.
이어서 i를 증가한 후 작업을 반복합니다.
이렇게 작업이 진행되면
S(0)에는 4, S(1)에는 3, S(2)에는 2, S(3)에는 쉼표(,), S(4)에는 1이 저장됩니다.
그러면 M은 0이되고
i값을 -1씩 감소시키면서 S(4) ~ S(0)까지 출력을 하면 1,234 가 출력되게 됩니다.
오늘도 즐거운 하루 되세요.