[LeetCode] Count Items Matching a Rule

준규·2022년 11월 9일
0

items 라는 배열이 주어지는데 items[i] = [type, color, name] 으로 구성되어 있고 ruleKey 와 ruleValue 라는 string도 주어진다.

만약 item중 아래의 3가지 조건중 하나라도 만족하는 item의 갯수를 리턴하는 문제이다.

  • ruleKey == 'type' 이고 ruleValue == i 번째 type
  • ruleKey == 'color' 이고 ruleValue == i 번째 color
  • ruleKey == 'name' 이고 ruleValue == i 번째 name

Example을 보자

const countMatches = function (items, ruleKey, ruleValue) {
  let count = 0;

  if (ruleKey === "type") {
    items.forEach((item) => {
      if (item[0] === ruleValue) count++;
    });
  } else if (ruleKey === "color") {
    items.forEach((item) => {
      if (item[1] === ruleValue) count++;
    });
  } else if (ruleKey === "name") {
    items.forEach((item) => {
      if (item[2] === ruleValue) count++;
    });
  }

  return count;
};

먼저 ruleKey의 값에 따라 3가지 경우가 생기므로 if문으로 체크를 해주었다.

각 각 type , color, name 에 따라 item 배열에서 체크를 해야할 인덱스는 0, 1, 2 이므로 type , color , name 에 따라 item[0 or 1 or 2] 의 값이 ruleValue의 값과 같은지 비교를 하고 같다면 count 값을 1증가 시켜주었다.

마지막으로 count의 값을 리턴해주었다.

submit을 해보니

정답이었다!

profile
안녕하세요 :)

0개의 댓글