Search

함수4_문제04_총합

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

영상

문제

<script> /* [문제] 아래 데이터는 각각의 회원이 물건을 구입가격들을 기록한 내용이다. 회원별 구입 총합을 테이블로 만들려고한다. 데이터는 아래와 같이 나올 수 있도록 result에 저장 후 출력하시오. 단, \n 은 줄바꿈이다. 구분자를 \n으로 넣으면 잘 잘린다. [정답] 10001,김철수,2670 10002,이영희,1950 10003,유재석,4080 10004,박명수,7130 */ let data =""; data += "10001/김철수/600\n"; data += "10002/이영희/800\n"; data += "10001/김철수/1400\n"; data += "10003/유재석/780\n"; data += "10002/이영희/950\n"; data += "10004/박명수/330\n"; data += "10001/김철수/670\n"; data += "10003/유재석/3300\n"; data += "10002/이영희/200\n"; data += "10004/박명수/6800\n"; data = data.substring(0 , data.length-1); // 마지막 글삭제 document.write(data); let result = []; </script>
Java
복사

해설

<script> /* [문제] 아래 데이터는 각각의 회원이 물건을 구입가격들을 기록한 내용이다. 회원별 구입 총합을 테이블로 만들려고한다. 데이터는 아래와 같이 나올 수 있도록 result에 저장 후 출력하시오. 단, \n 은 줄바꿈이다. 구분자를 \n으로 넣으면 잘 잘린다. [정답] 10001,김철수,2670 10002,이영희,1950 10003,유재석,4080 10004,박명수,7130 */ function tokenData(data) { let token = data.split("\n"); let dataList = []; for(let i=0; i<token.length; i++) { let temp = token[i].split("/"); temp[2] = Number(temp[2]); dataList.push(temp); } return dataList; } function userCheck(userNumber, resultList) { let check = false; for(let j=0; j<resultList.length; j++) { if(userNumber == resultList[j][0]) { check = true; break; } } return check; } function setTotal(dataList, resultList) { for(let i=0; i<resultList.length; i++) { let total = 0; for(let j=0; j<dataList.length; j++) { if(resultList[i][0] == dataList[j][0]) { total += dataList[j][2]; } } resultList[i][2] = total; } } function getResultList(dataList) { let resultList = []; resultList.push([dataList[0][0], dataList[0][1], dataList[0][2]]); for(let i=1; i<dataList.length; i++) { if(userCheck(dataList[i][0], resultList) == false) { resultList.push([dataList[i][0], dataList[i][1], dataList[i][2]]); } } setTotal(dataList, resultList); return resultList; } function solution(data) { let dataList = tokenData(data); let resultList = getResultList(dataList); return resultList; } let data =""; data += "10001/김철수/600\n"; data += "10002/이영희/800\n"; data += "10001/김철수/1400\n"; data += "10003/유재석/780\n"; data += "10002/이영희/950\n"; data += "10004/박명수/330\n"; data += "10001/김철수/670\n"; data += "10003/유재석/3300\n"; data += "10002/이영희/200\n"; data += "10004/박명수/6800\n"; data = data.substring(0 , data.length-1); // 마지막 글삭제 let resultList = []; resultList = solution(data); for(let i=0; i<resultList.length; i++) { document.write(resultList[i] + "<br>"); } </script>
Java
복사