영상
문제
<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
복사