배열 items가 주어졌습니다. 각 items[i] = [typei, colori, namei]는 i번째 항목의 유형, 색상 및 이름을 설명합니다. 또한 두 개의 문자열, ruleKey와 ruleValue가 주어집니다.
i번째 항목이 다음 중 하나가 참이면 규칙에 일치한다고 합니다:
• ruleKey == “type”이고 ruleValue == typei인 경우.
• ruleKey == “color”이고 ruleValue == colori인 경우.
• ruleKey == “name”이고 ruleValue == namei인 경우.
주어진 규칙에 일치하는 항목의 수를 반환합니다.
items = [["phone", "blue", "pixel"], ["computer", "silver", "lenovo"], ["phone", "gold", "iphone"]],
ruleKey = "color",
ruleValue = "silver"
설명: 주어진 규칙에 일치하는 항목은 [“computer”, “silver”, “lenovo”] 하나뿐입니다.
items = [["phone", "blue", "pixel"], ["computer", "silver", "phone"], ["phone", "gold", "iphone"]],
ruleKey = "type",
ruleValue = "phone"
설명: 주어진 규칙에 일치하는 항목은 [“phone”, “blue”, “pixel”]와 [“phone”, “gold”, “iphone”] 두 개입니다. [“computer”, “silver”, “phone”]는 일치하지 않습니다.
• 1 <= items.length <= 10^4
• 1 <= typei.length, colori.length, namei.length, ruleValue.length <= 10
• ruleKey는 “type”, “color”, 또는 “name” 중 하나입니다.
• 모든 문자열은 소문자로만 구성됩니다.
class Solution:
def countMatches(self, items: List[List[str]], ruleKey: str, ruleValue: str) -> int:
# Determine the index to check based on the ruleKey
key_index = {"type": 0, "color": 1, "name": 2}[ruleKey]
# Count how many items match the ruleValue at the given index
count = sum(1 for item in items if item[key_index] == ruleValue)
return count