Search

함수4_문제01_포인트

대분류
STEP10 함수/클래스
문제 난이도
필수
소분류
함수4_문제

영상

문제

<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
복사