본문 바로가기
Study/Algorithm_정보처리기사

[정보처리기사][알고리즘][응용] 반 배정

by 푸민 2015. 8. 23.
반응형



Q. 1번부터 21번까지 21명의 학생을 3학급으로 편성하는 순서도를 작성하시오. 첫 학생의 반은 2명의 교사가 제시한 2개의 숫자를 더한 후 21로 나눈 나머지 번째에 있는 학생을 1반으로 지정한다. 이후에는 첫번째 지정한 학생으로부터 4명 건너뛴 학생이 2반이 되며, 다시 4명 건너뛴 학생이 3반이 된다. 이러한 방법으로 3반 다음에는 다시 1반으로 연결된다. 단, 나머지가 0이면 21로 간주하고 이미 반이 배정된 학생은 건너뛰는 4명에서 제외시킨다.

1. 배정된 반이 저장될 배열 A를 선언한다.


2. 반이 배정될 배열을 0으로 초기화한다.


1) A(I)를 0으로 초기화한다.


3. 2명의 교사가 제시한 수 2개를 입력받는다.


4. 입력받은 두 수를 더한다.


5. 입력받은 두 수의 합을 21로 나눈 나머지를 구한다.


6. 나머지가 0인지 검사한다.


1) Yes일 경우, 나머지가 0이면 나머지에 21을 저장한다. 그리고 7로 간다.


2) No일 경우, 7로 간다.


7. 반이 배정된 학생의 수가 저장될 CNT는 누적변수이므로 0으로 초기화한다.


8. 반은 1~3까지 누적되는 변수이므로 0으로 초기화한다.


9. 반을 1씩 증가시킨다.


10. 반이 3보다 큰지 검사한다.


1) Yes일 경우, 반을 초기화한다. 반이 3반까지 있으므로 3반이 넘어서면 다시 1반부터 시작해야한다는 것을 생각한다. 그리고 10으로 간다.


2) No일 경우, 10으로 간다.


11. 계산된 반을 배정한다. 반배열에서 학생의 위치를 가리키는 변수는 NMG라는 것을 생각한다.


12. 반이 배정된 학생의 수를 1씩 증가시킨다.


13. CNT가 21보다 작으면 다음 학생의 반배정을 위해 Yes로 가고 아니면 No로 간다.


1) No일 경우, 배정된 반을 출력하고 끝낸다.


2) Yes일 경우, 다음 학생에게 반을 배정하기 위해 반이 배정되지 않은 학생 4명을 건너뛴다.


A. 반을 재정할 위치를 1증가시키낟.


B. 나머지가 21보다 크면 다시 1부터 지정하기 위해 Yes로 가고 아니면 No로 간다.


A) Yes일 경우, 반의 위치를 지정하는 변수를 초기화한다. 학생이 21명이므로 배열의 위치가 21을 넘어서면 다시 1부터 시작해야 한다는 것을 생각한다. 그리고 C로 간다.


B) No경우, C로 간다.


C. 0이 아니면 이미 반이 배정된 학생이므로 건너뛰는 4명을 제외시키기 위해 Yes로 가고 아니면 No로 간다.


A) Yes일 경우, 반복변수를 감소시킨다. 이미 반을 배정한 학생을 검사한 경우이다. 그리고 반복문을 진행한다.


B) No일 경우, 반복문을 진행한다.


D. 반복이 종료되면 9로 간다.


해당 글은 제가 만든 어플을 기준으로 작성하였습니다.

더 많은 정보는 알고리즘 어플을 이용해주세요.

반응형

댓글