문제 설명
function solution(events)를 작성하세요. 입력과 출력은 모두 JSON으로 표현 가능한 값입니다. 입력 배열과 객체를 직접 변경하면 안 돼요. 외부 라이브러리, 네트워크 요청, 비동기 함수는 사용할 수 없어요. events:{id:string,account:string,delta:integer}[]. id의 첫 이벤트만 수락합니다. 같은 id의 다른 계좌·금액 이벤트도 무시합니다. 문자열은 대소문자를 구분합니다. accepted는 입력 이벤트별 boolean. 수락된 delta를 계좌별 합산하고, 0 잔액도 포함해 account의 JavaScript 문자열 오름차순으로 정렬합니다. {accepted,balances:[{account,balance}]}를 반환합니다. 합계는 안전한 정수입니다. 입력 범위: 각 입력 배열은 최대 50,000개 항목, 문자열은 최대 1,000자입니다. 숫자는 유한한 값이며, 정수와 합산 결과는 JavaScript의 안전한 정수 범위 안에 있습니다. 그 외 자료형과 유효성 조건은 위 규칙을 따릅니다.
입출력 예시
예시 1
함수 인자
[
[
{
"id": "x",
"account": "a",
"delta": 10
},
{
"id": "x",
"account": "a",
"delta": 99
}
]
]반환값
{
"accepted": [
true,
false
],
"balances": [
{
"account": "a",
"balance": 10
}
]
}예시 2
함수 인자
[
[
{
"id": "x",
"account": "b",
"delta": 2
},
{
"id": "y",
"account": "a",
"delta": -3
}
]
]반환값
{
"accepted": [
true,
true
],
"balances": [
{
"account": "a",
"balance": -3
},
{
"account": "b",
"balance": 2
}
]
}예시 3
함수 인자
[
[
{
"id": "a",
"account": "A",
"delta": 1
},
{
"id": "b",
"account": "a",
"delta": 1
}
]
]반환값
{
"accepted": [
true,
true
],
"balances": [
{
"account": "A",
"balance": 1
},
{
"account": "a",
"balance": 1
}
]
}