문제 설명
function solution(rules, requests)를 작성하세요. 입력과 출력은 모두 JSON으로 표현 가능한 값입니다. 입력 배열과 객체를 직접 변경하면 안 돼요. 외부 라이브러리, 네트워크 요청, 비동기 함수는 사용할 수 없어요. rules:{effect:string,subject:string,action:string,resource:string}[], requests:{subject,action,resource}[]. 규칙의 세 필드는 '*'이면 모두 일치, 그 외는 대소문자 구분 정확 일치. 일치하는 deny 규칙이 하나라도 있으면 거부합니다. 그렇지 않고 일치 allow가 있으면 허용, 없으면 거부. 다른 effect는 무시합니다. 규칙 순서는 결과에 영향이 없습니다. 요청 순서의 boolean[] 반환. 입력 범위: 각 입력 배열은 최대 50,000개 항목, 문자열은 최대 1,000자입니다. 숫자는 유한한 값이며, 정수와 합산 결과는 JavaScript의 안전한 정수 범위 안에 있습니다. 그 외 자료형과 유효성 조건은 위 규칙을 따릅니다.
입출력 예시
예시 1
함수 인자
[
[
{
"effect": "allow",
"subject": "alice",
"action": "*",
"resource": "*"
}
],
[
{
"subject": "alice",
"action": "read",
"resource": "file"
},
{
"subject": "bob",
"action": "read",
"resource": "file"
}
]
]반환값
[ true, false ]
예시 2
함수 인자
[
[
{
"effect": "allow",
"subject": "*",
"action": "*",
"resource": "*"
},
{
"effect": "deny",
"subject": "alice",
"action": "*",
"resource": "*"
}
],
[
{
"subject": "alice",
"action": "read",
"resource": "file"
},
{
"subject": "bob",
"action": "read",
"resource": "file"
}
]
]반환값
[ false, true ]
예시 3
함수 인자
[
[
{
"effect": "deny",
"subject": "bob",
"action": "*",
"resource": "*"
},
{
"effect": "allow",
"subject": "*",
"action": "*",
"resource": "*"
}
],
[
{
"subject": "alice",
"action": "read",
"resource": "file"
}
]
]반환값
[ true ]