Search

이차배열2_문제06_시험점수

대분류
STEP08 이차배열
문제 난이도
LV06
소분류
이차배열2_문제

영상

문제

<script> /* [문제] student배열은 이번 학기 중간고사 성적이다. 가로 한 줄을 기준으로 맨 앞은 번호이고, 뒤에 숫자 3개는 각각 국어, 수학, 영어 점수이다. */ let student = [ [1001, 100, 20, 32], // 152 [1002, 40, 43, 12], // 95 [1003, 60, 21, 42], // 123 [1004, 76, 54, 55], // 185 [1005, 23, 11, 76] // 110 ]; let rank = [0, 0, 0, 0, 0]; /* [문제1] 모든 점수의 총합을 출력하시오. [정답1] 665 */ /* [문제2] 국어 1등 번호를 출력하시오. [정답2] 1001 */ /* [문제3] 수학 1등 번호를 출력하시오. [정답3] 1004 */ /* [문제4] 영어 1등 번호를 출력하시오. [정답4] 1005 */ /* [문제5] 전체 1등 번호를 출력하시오. [정답5] 1004 */ /* [문제6] 수학점수가 국어점수 보다 높은 번호를 출력하시오. [정답6] 1002 */ /* [문제7] 세 과목의 총합의 등수를 rank리스트에 저장하시오. [정답7] rank = 2,5,3,1,4 */ </script>
Java
복사

해설

<script> /* [문제] student배열은 이번 학기 중간고사 성적이다. 가로 한 줄을 기준으로 맨 앞은 번호이고, 뒤에 숫자 3개는 각각 국어, 수학, 영어 점수이다. */ let student = [ [1001, 100, 20, 32], // 152 [1002, 40, 43, 12], // 95 [1003, 60, 21, 42], // 123 [1004, 76, 54, 55], // 185 [1005, 23, 11, 76] // 110 ]; let rank = [0, 0, 0, 0, 0]; /* [문제1] 모든 점수의 총합을 출력하시오. [정답1] 665 */ document.write("[문제1]<br>"); let total = 0; for(let i=0; i<student.length; i++) { for(let j=1; j<student[i].length; j++) { total += student[i][j]; } } document.write(total + "<br>"); /* [문제2] 국어 1등 번호를 출력하시오. [정답2] 1001 */ document.write("[문제2]<br>"); let maxKorScore = 0; let maxKorIndex = 0; for(let i=0; i<student.length; i++) { if(maxKorScore < student[i][1]) { maxKorScore = student[i][1]; maxKorIndex = i; } } document.write(student[maxKorIndex][0] + "<br>"); /* [문제3] 수학 1등 번호를 출력하시오. [정답3] 1004 */ document.write("[문제3]<br>"); let maxMathScore = 0; let maxMathIndex = 0; for(let i=0; i<student.length; i++) { if(maxMathScore < student[i][2]) { maxMathScore = student[i][2]; maxMathIndex = i; } } document.write(student[maxMathIndex][0] + "<br>"); /* [문제4] 영어 1등 번호를 출력하시오. [정답4] 1005 */ document.write("[문제4]<br>"); let maxEngScore = 0; let maxEngIndex = 0; for(let i=0; i<student.length; i++) { if(maxEngScore < student[i][3]) { maxEngScore = student[i][3]; maxEngIndex = i; } } document.write(student[maxEngIndex][0] + "<br>"); /* [문제5] 전체 1등 번호를 출력하시오. [정답5] 1004 */ document.write("[문제5]<br>"); let maxScore = 0; let maxIndex = 0; for(let i=0; i<student.length; i++) { let total = 0; for(let j=1; j<student[i].length; j++) { total += student[i][j]; } if(maxScore < total) { maxScore = total; maxIndex = i; } } document.write(student[maxIndex][0] + "<br>"); /* [문제6] 수학점수가 국어점수 보다 높은 번호를 출력하시오. [정답6] 1002 */ document.write("[문제6]<br>"); for(let i=0; i<student.length; i++) { if(student[i][1] < student[i][2]) { document.write(student[i][0] + " "); } } document.write("<br>"); /* [문제7] 세 과목의 총합의 등수를 rank리스트에 저장하시오. [정답7] rank = 2,5,3,1,4 */ document.write("[문제7]<br>"); let sum = []; for(let i=0; i<student.length; i++) { let total = 0; for(let j=1; j<student[i].length; j++) { total += student[i][j]; } sum.push(total); } for(let i=0; i<sum.length; i++) { let count = 1; for(let j=0; j<sum.length; j++) { if(sum[i] < sum[j]) { count += 1; } } rank[i] = count; } document.write("rank = " + rank); </script>
Java
복사