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