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

배열의 인덱스는 1부터 시작한다. 최대 요소를 찾는 다음 프로그램을 실행한 후의 m의 값은?

integer array: a ← {3, 8, 2, 8, 5}
integer: m ← 1
for (i from 2 to 5 step 1)
  if (a[i] > a[m])
    m ← i
  endif
endfor
  1. A2
  2. B4
  3. C8
정답과 해설 보기

정답: A. 2

m은 그때까지 본 것 중 최대인 요소의 인덱스입니다. i = 2에서 a[2] = 8 > a[1] = 3이므로 m = 2가 됩니다. i = 4의 a[4] = 8은 a[2] = 8과 같아 >가 성립하지 않으므로 m은 바뀌지 않습니다. 따라서 최댓값이 여러 개일 때는 처음 나타난 인덱스 2가 남습니다. 조건을 ≧로 하면 마지막에 나타난 인덱스 4가 됩니다.

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

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

  1. 배열 a의 요소를 역순으로 뒤집을 생각으로 다음 프로그램을 작성했다. 배열의 인덱스는 1부터 시작한다. 실행한 후의 a의 내용은?
  2. 배열의 인덱스는 1부터 시작한다. 다음 프로그램을 실행한 후의 배열 a의 내용은?
  3. 배열의 인덱스는 1부터 시작한다. 이웃한 요소를 비교하는 다음 프로그램을 실행한 후의 c의 값은?
  4. m[i, j]는 2차원 배열 m의 i행 j열의 요소를 나타내며, 인덱스는 1부터 시작한다. 다음 프로그램을 실행한 후의 s의 값은?
  5. 4행 5열의 2차원 배열 m의 요소를 다음 프로그램으로 요소 수 20인 배열 b로 옮긴다. m[i, j]는 i행 j열의 요소를 나타내며, 인덱스는 1부터 시작한다. m[3, 2]가 대입되는 b의 인덱스는?