각종 실기시험 자료실/- 정보처리기능사
2011년 정보처리 기능사 1월 시험 실기 기출문제 풀이
new올빼미
2011. 5. 26. 13:30
728x90
2011년 1월이 있었던 정보처리 기능사 기출문제의 유형을 보고 풀이를 보겠습니다.
문제는 아래의 테이블과 같이 값이 들어 가도록 알고리즘을 완성하는 것입니다.
그럼 알고리즘을 보도록 하겠습니다.
플로우차트에서 준비기호를 보면 K,M,N 은 일단 0 으로 시작을 하고 있습니다.
그 중에서 M 이 가장 먼저 M = M + 1을 하여 1을 증가 시키면서 값이 1이 되었습니다.
그 다음을 보면 판단기호에서 M이 6이 되면 끝을 내는 방향으로 나가게 되어 있습니다.
이것은 M이 줄을 나타내며 1줄부터 5줄을 모두 끝내고 M = M + 1을 하여 6이 되었을 때 끝을 내겠다는 의미입니다.
다음 줄에서 N = N + 1을 하여 열 번호도 이제 1이 되었습니다.
여기까지 진행이 되면 이 플로우차트는 배열에서 가장 처음 A(1,1)에 값을 넣기 위한 준비가 된 것입니다. 다음으로 할 일은 A(1,1)에 들어갈 값을 정하는 일입니다.
다음 줄에 K = 이라고 한 다음 빈 칸이 있습니다. 우리가 지금 할 것은 A(1,1)에 들어갈 값을 정할 것이기 때문에 K는 우리가 찾고 있는 들어갈 값이라는 것을 알 수 있습니다.
현재 K는 가장 위에서 0으로 초기화가 되어 있습니다.
테이블을 보면 가장 먼저 들어가는 값이 1이고 다음으로 1씩 증가하여 값이 들어가는 것으로 볼때 여기에서는 K를 1증가 시켜주면 될 것입니다.
그래서 ①에 들어갈 답은 K + 1입니다. 그러면 K = K + 1 이 완성이 되면서 K에 1이 들어 가게 됩니다.
다음으로 K < 7 이라는 판단 기호가 나오는데 K는 값이 1부터 7까지만 사용이 되기 때문에 K의 값이 7을 넘어가면 고쳐 주어야 합니다. 그래서 이 판단기호는 K가 1부터 7의 사이를 넘어 갔는지 물어 보는 것입니다. 7을 넘어갔으면 다시 1로 만들어 주어야 하기 때문에 K를 0으로 초기화를 해주고 K = K + 1의 위로 보내는 것입니다.
그래서 ②에 들어갈 답은 0 입니다. 그러면 K = 0 이 완성이 되면서 K를 초기화 하고 다시 K = K +1을 실행하여 1부터시작을 하게 됩니다.
이제 A(1,1)에 들어갈 K의 값이 정해 졌으니 넣어 주면 됩니다. 그래서 다음에 나오는 처리기호에서는 A(M,N)에 값을 넣는 식이 들어가야 합니다.
③에 들어갈 답은 A(M,N) = K 가 됩니다. 그러면 A(1,1)에는 1이라는 값이 들어가게 됩니다.
지금까지의 처리과정으로 N이 7일때 까지 값을 넣어주면 1행이 완성이 됩니다.
1행이 완성이 되었을때 M = 1, N = 7, K = 7 의 값들이 들어 있습니다.
이제는 다음 행인 2행에 값을 넣기 위한 준비를 해야 합니다. 그래서 M 은 1을 증가해야하고 N은 다시 0으로 초기화를 해야하고 K 는 다음 행의 시작인 2가 되기 위해 초기값이 1로 되어 있어야 합니다. 왜냐하면 위에서 K가 0으로 초기값을 가지고 있을 때 1부터 시작을 했기 때문에 2부터 시작을 하려면 1로 초기화가 되어 있어야 하는 것입니다.
그래서 N < 7 의 판단기호 아래에 있는 두개의 처리기호는 다음을 위한 준비 작업을 하는 곳입니다.
④가 있는 K = 의 처리기호에는 다음 행에서 2부터 시작을 해야 하기 때문에 현재 가지고 있는 7을 1로 바꾸어야 합니다. 그러나 여기에서 K = 1 이라고 직접적으로 쓸 수는 없는 이유는 3행에서는 3부터 시작하기 때문에 초기값이 2가 되어야 하기 때문입니다.
그래서 K 에 들어갈 값은 현재의 행번호와 K의 초기값이 같은 값이기 때문에 ④에는 M이 들어가게 됩니다. 그래서 K = M이라고 완성이 되면 K는 항상 바로 전의 M인 1, 2, 3, 4 가 차례로 들어 가게 되는 것입니다.
그 아래의 처리기호에는 아직 초기화 되지 않은 N을 처리하면 됩니다.
그래서 ⑤에는 N = 0 이 들어 가게 됩니다.
지금까지 1회전을 하면서 빈 칸을 모두 채워 봤습니다. 넣은 답이 맞는지는 직접 검산을 하시면서 다시 복습을 해보시기 바랍니다.
문제는 아래의 테이블과 같이 값이 들어 가도록 알고리즘을 완성하는 것입니다.
이 테이블은 5행 7열로 구성되어 있으며 값은 1에서 7까지 1씩 증가합니다. 그리고 값이 7이 넘어가면 다시 1로 만들어서 증가 시키면 되는 것입니다. 각 행의 시작 값은 행의 값과 같이 1행에서는 1, 2행에서는 2로 시작하고 있습니다.
배열은 A(M,N)입니다.그럼 알고리즘을 보도록 하겠습니다.
그 중에서 M 이 가장 먼저 M = M + 1을 하여 1을 증가 시키면서 값이 1이 되었습니다.
그 다음을 보면 판단기호에서 M이 6이 되면 끝을 내는 방향으로 나가게 되어 있습니다.
이것은 M이 줄을 나타내며 1줄부터 5줄을 모두 끝내고 M = M + 1을 하여 6이 되었을 때 끝을 내겠다는 의미입니다.
다음 줄에서 N = N + 1을 하여 열 번호도 이제 1이 되었습니다.
여기까지 진행이 되면 이 플로우차트는 배열에서 가장 처음 A(1,1)에 값을 넣기 위한 준비가 된 것입니다. 다음으로 할 일은 A(1,1)에 들어갈 값을 정하는 일입니다.
다음 줄에 K = 이라고 한 다음 빈 칸이 있습니다. 우리가 지금 할 것은 A(1,1)에 들어갈 값을 정할 것이기 때문에 K는 우리가 찾고 있는 들어갈 값이라는 것을 알 수 있습니다.
현재 K는 가장 위에서 0으로 초기화가 되어 있습니다.
테이블을 보면 가장 먼저 들어가는 값이 1이고 다음으로 1씩 증가하여 값이 들어가는 것으로 볼때 여기에서는 K를 1증가 시켜주면 될 것입니다.
그래서 ①에 들어갈 답은 K + 1입니다. 그러면 K = K + 1 이 완성이 되면서 K에 1이 들어 가게 됩니다.
다음으로 K < 7 이라는 판단 기호가 나오는데 K는 값이 1부터 7까지만 사용이 되기 때문에 K의 값이 7을 넘어가면 고쳐 주어야 합니다. 그래서 이 판단기호는 K가 1부터 7의 사이를 넘어 갔는지 물어 보는 것입니다. 7을 넘어갔으면 다시 1로 만들어 주어야 하기 때문에 K를 0으로 초기화를 해주고 K = K + 1의 위로 보내는 것입니다.
그래서 ②에 들어갈 답은 0 입니다. 그러면 K = 0 이 완성이 되면서 K를 초기화 하고 다시 K = K +1을 실행하여 1부터시작을 하게 됩니다.
이제 A(1,1)에 들어갈 K의 값이 정해 졌으니 넣어 주면 됩니다. 그래서 다음에 나오는 처리기호에서는 A(M,N)에 값을 넣는 식이 들어가야 합니다.
③에 들어갈 답은 A(M,N) = K 가 됩니다. 그러면 A(1,1)에는 1이라는 값이 들어가게 됩니다.
지금까지의 처리과정으로 N이 7일때 까지 값을 넣어주면 1행이 완성이 됩니다.
1행이 완성이 되었을때 M = 1, N = 7, K = 7 의 값들이 들어 있습니다.
이제는 다음 행인 2행에 값을 넣기 위한 준비를 해야 합니다. 그래서 M 은 1을 증가해야하고 N은 다시 0으로 초기화를 해야하고 K 는 다음 행의 시작인 2가 되기 위해 초기값이 1로 되어 있어야 합니다. 왜냐하면 위에서 K가 0으로 초기값을 가지고 있을 때 1부터 시작을 했기 때문에 2부터 시작을 하려면 1로 초기화가 되어 있어야 하는 것입니다.
그래서 N < 7 의 판단기호 아래에 있는 두개의 처리기호는 다음을 위한 준비 작업을 하는 곳입니다.
④가 있는 K = 의 처리기호에는 다음 행에서 2부터 시작을 해야 하기 때문에 현재 가지고 있는 7을 1로 바꾸어야 합니다. 그러나 여기에서 K = 1 이라고 직접적으로 쓸 수는 없는 이유는 3행에서는 3부터 시작하기 때문에 초기값이 2가 되어야 하기 때문입니다.
그래서 K 에 들어갈 값은 현재의 행번호와 K의 초기값이 같은 값이기 때문에 ④에는 M이 들어가게 됩니다. 그래서 K = M이라고 완성이 되면 K는 항상 바로 전의 M인 1, 2, 3, 4 가 차례로 들어 가게 되는 것입니다.
그 아래의 처리기호에는 아직 초기화 되지 않은 N을 처리하면 됩니다.
그래서 ⑤에는 N = 0 이 들어 가게 됩니다.
지금까지 1회전을 하면서 빈 칸을 모두 채워 봤습니다. 넣은 답이 맞는지는 직접 검산을 하시면서 다시 복습을 해보시기 바랍니다.