771-jewels-and-stones-0808

몇월며칠·2022년 8월 8일

Leetcode

목록 보기
4/19
var numJewelsInStones = function (jewels, stones) {
  let count = 0;
  let s = stones.length;
  for (let i = 0; i < s; i++) {
    if (jewels.indexOf(stones[i]) >= 0) {
      count++;
    }
  }
  return count;
};

.indexOf만 알면 완전 초간단 문제였던 것...
난 또 반복문에 눈이 멀어 보석과 돌을 쪼개고 배열을 만들고 다시 반복문을 돌리고 어쩌구...해서 풀려고 했었다

속성들을 잘 활용하자

indexOf 정리
indexOf는 배열에도 문자열에도 적용할 수 있는 속성이다.

'Blue Whale'.indexOf('Blue');     // returns  0
'Blue Whale'.indexOf('Blute');    // returns -1

해당 값이 비교할 값과 일치하면 0, 그렇지않으면 -1을 반환하는 속성을 이용하면 넘 간단하게...

'Blue Whale'.indexOf('Whale', 0); // returns  5
'Blue Whale'.indexOf('Whale', 5); // returns  5
'Blue Whale'.indexOf('Whale', 7); // returns -1

이 부분은 이해가 좀 안되는걸...뒤의 숫자가 뭘 의미하는지...

'Blue Whale'.indexOf('blue'); // returns -1

대소문자도 구분함

++ 대박사건
리트코드 discuss에 물어봤더니 누가 대답해줬다ㅜㅜㅜㅜ

땡큐 쏘머치...덕분에 split을 쓰면 새로운 배열이 탄생해서 굳이 빈 배열에 집어넣을 필요가 없다는걸 알게 되었어요

const jewelsArr = jewels.split("");
const stonesArr = stones.split("");

이렇게 바꿨더니 내 대답도 맞다 흑흑 오예!

profile
What day is it today?

0개의 댓글