영상
문제
<script>
/*
[문제]
아래 userData는 회원번호와 이름이고,
pointData는 포인트와 회원번호이다.
포인트는 여러번 쌓을 수 있고,
전부 누적해서 합을 구한다.
포인트 점수가 가장 높은 회원의 이름을 출력하시오.
[정답]
이만수 (3점으로 1002번이 가장 높으므로 정답)
*/
let userData = "1001/김철수,";
userData += "1002/이만수,";
userData += "1003/이영희";
let pointData = "1/1001,";
pointData += "1/1002,";
pointData += "2/1003,";
pointData += "1/1001,";
pointData += "2/1002";
</script>
Java
복사
해설
<script>
/*
[문제]
아래 userData는 회원번호와 이름이고,
pointData는 포인트와 회원번호이다.
포인트는 여러번 쌓을 수 있고,
전부 누적해서 합을 구한다.
포인트 점수가 가장 높은 회원의 이름을 출력하시오.
[정답]
이만수 (3점으로 1002번이 가장 높으므로 정답)
*/
function getSplitArr(doubleStr) {
let arr = [];
let token = doubleStr.split(",");
for(let i=0; i<token.length; i++) {
let temp = token[i].split("/");
arr.push(temp);
}
return arr;
}
function getMaxUser(userList, pointList) {
let max = 0;
let maxIndex = 0;
for(let i=0; i<userList.length; i++) {
let total = 0;
for(let j=0; j<pointList.length; j++) {
if(userList[i][0] == pointList[j][1]) {
total += Number(pointList[j][0]);
}
}
document.write(total + "<br>");
if(max < total) {
max = total;
maxIndex = i;
}
}
return userList[maxIndex][1];
}
let userData = "1001/김철수,";
userData += "1002/이만수,";
userData += "1003/이영희";
let pointData = "1/1001,";
pointData += "1/1002,";
pointData += "2/1003,";
pointData += "1/1001,";
pointData += "2/1002";
let userList = getSplitArr(userData);
let pointList = getSplitArr(pointData);
let name = getMaxUser(userList, pointList);
document.write(name);
</script>
Java
복사