다음 프로그램 (가)의 순환 복잡도와 제어흐름 그래프 (나)의 순환 복… | [경찰간부후보생 소프트웨어공학] 26년 1회차 기출문제 상세 페이지
1[경찰간부후보생 소프트웨어공학] 26년 1회차
다음 프로그램 (가)의 순환 복잡도와 제어흐름 그래프 (나)의 순환 복잡도로 가장 적절한 것은? (단, 코드 실행에 대한 오류는 없는 것으로 함)
| (가) | (나) |
| bool func(int a, int b, int c) { bool flag = true; int i; int sum; if (a < b) flag = false; if (a < c) flag= false; if (a > 0) i = 1; else { i = 0; a = -a; } sum = 0; while (i < a) { sum += 1; i++; } print(sum); return flag; } |
(가) (나) (가) (나)

1
4 4
2
5 5
3
4 5
4
5 4
해설
프로그램 (가)의 순환 복잡도는 5, 제어흐름 그래프 (나)의 순환 복잡도는 4이다.
(가)에는 판단문이 if, if, if-else, while 네 개 있으므로 판단 수에 1을 더해 5가 된다.
(나)는 노드 9개, 간선 11개이다.
분기하는 노드가 3개이므로 3+1로 계산해도 같다.
- (가)와 (나)를 모두 4로 본 조합: (가)의 while 반복도 판단문이므로 (가)는 5이다.
- (가)와 (나)를 모두 5로 본 조합: (나)는 간선·노드 수로 계산하면 4이다.
- (가) 4, (나) 5인 조합: 두 값이 서로 뒤바뀌었다.
오류나 개정된 내용이 보이면 알려주세요