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

m[i, j]는 2차원 배열 m의 i행 j열의 요소를 나타내며, 인덱스는 1부터 시작한다. 다음 프로그램을 실행한 후의 s의 값은?

2D integer array: m ← {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}}
integer: s ← 0
for (i from 1 to 3 step 1)
  for (j from 1 to i step 1)
    s ← s + m[i, j]
  endfor
endfor
  1. A15
  2. B26
  3. C34
정답과 해설 보기

정답: C. 34

안쪽의 {…}가 각각 한 행을 나타냅니다. j는 1부터 i까지 움직이므로 1행은 m[1, 1] = 1, 2행은 4 + 5, 3행은 7 + 8 + 9를 더하여 s = 1 + 9 + 24 = 34가 됩니다. 대각선과 그 왼쪽 아래(하삼각)의 요소의 합계입니다. 행과 열을 혼동하여 m[j, i]로 하면 오른쪽 위(상삼각)의 1 + 2 + 5 + 3 + 6 + 9 = 26이 됩니다.

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

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

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