일관된 문자열의 개수 세기

RingKim1·2024년 5월 24일

algorithm

목록 보기
9/18

일관된 문자열의 개수 세기

해결과정

  • words가 요소가 일관된 문자열인지 확인을 위해 요소마다 쪼개서 배열로 담는다. : map(), split("")
  • 결과를 담을 배열 선언
  • 쪼개진 words를 순회하면서 요소의 글자들 마다 allowed에 들어가는지 확인, 들어가면 count ++
  • 요소의 배열에 갯수와 count가 일치하면 해당 요소를 다시 합친 글자열이 result에 담긴다 : join(""), push()
  • result의 길이(일관된 문자열 갯수)를 리턴
function countConsistentStrings(allowed, words) {
  const splitedWords = words.map((el) => el.split(""));
  const result = [];

  for (const el of splitedWords) {
    let count = 0;
    for (let i = 0; i < el.length; i++) {
      if (allowed.includes(el[i])) {
        count++;
      }
    }
    if (count === el.length) {
      result.push(el.join(""));
    }
  }
  return result.length;
}

결과


깨달은 점

사실 중간에 로직을 잘못짜서 1시간 넘게 삽질하다가..
다 초기화 시키고 15분 정도 걸린 문제다.

  1. 문자열 자체에 includes 메서드를 쓸 수 있다.
  2. 배열에서 특정 문자열을 빼면 splice(index,1)
    해당 문자열 전체 인덱스가 달라져서 로직이 꼬인다.
    => 해당하는 조건을 추가하는 게 인덱스도 꼬이지 않고 좋음.
  3. count를 선언해주고 해당 조건에 맞는지 확인!
profile
커피는 콜드브루

0개의 댓글