프로그래밍의 기초(의사 코드 트레이스)

배열의 인덱스는 1부터 시작한다. 이웃한 요소를 비교하는 다음 프로그램을 실행한 후의 c의 값은?

integer array: a ← {2, 2, 3, 3, 3, 1, 1}
integer: c ← 0
for (i from 1 to length(a) − 1 step 1)
  if (a[i] = a[i + 1])
    c ← c + 1
  endif
endfor
  1. A4
  2. B6
  3. C7
정답과 해설 보기

정답: A. 4

이웃한 두 요소가 같은 쌍의 수를 셉니다. i는 1부터 6까지 움직이며, a[1]과 a[2], a[3]과 a[4], a[4]와 a[5], a[6]과 a[7]의 4쌍이 같으므로 c = 4입니다. 비교는 7 − 1 = 6회 이루어집니다. 종료값을 요소 수 − 1로 한 것은 a[i + 1]이 배열의 범위를 넘지 않도록 하기 위해서입니다.

이 분야 연습하기 분야로 돌아가기

프로그래밍의 기초(의사 코드 트레이스)의 다른 문제

  1. m[i, j]는 2차원 배열 m의 i행 j열의 요소를 나타내며, 인덱스는 1부터 시작한다. 다음 프로그램을 실행한 후의 s의 값은?
  2. 4행 5열의 2차원 배열 m의 요소를 다음 프로그램으로 요소 수 20인 배열 b로 옮긴다. m[i, j]는 i행 j열의 요소를 나타내며, 인덱스는 1부터 시작한다. m[3, 2]가 대입되는 b의 인덱스는?
  3. 배열의 인덱스는 1부터 시작하며, +는 문자열을 연결한다. 다음 프로그램을 실행한 후의 r의 값은?
  4. 다음 함수 isPal은 문자열형 배열 s의 문자 순서가 앞에서 읽어도 뒤에서 읽어도 같으면(회문) true를 반환한다. 배열의 인덱스는 1부터 시작한다. 프로그램 중의 【a】에 들어갈 것은?
  5. ÷는 나눗셈이며, 정수형 변수(인수 포함)에 대입할 때는 소수점 이하를 버린다. 다음 함수 f를 f(9087)로 호출했을 때의 반환값은?