프로그래머스 문자열 나누기 자바스크립트

버건디·2023년 6월 25일
0

프로그래머스

목록 보기
52/66
post-thumbnail

문제 링크


- 내 풀이

function solution(s) {
  let count = 0;

  let splitS = s.split("");

  let firstStrMap = new Map();
  let differentMap = new Map();

  for (let i = 0; i < splitS.length; i++) {
    // 첫글자 아무것도 없을때
    if (firstStrMap.size === 0) {
      firstStrMap.set(splitS[i], 1);
    }
    // 첫글자가 이미 존재했을때
    else if (firstStrMap.get(splitS[i])) {
      firstStrMap.set(splitS[i], firstStrMap.get(splitS[i]) + 1);
    } else {
      differentMap.set(
        "differentStr",
        differentMap.get("differentStr") + 1 || 1
      );
    }

    let firstStrArr = [...firstStrMap];
    let differentStrArr = [...differentMap];

    if (
      firstStrArr.length > 0 &&
      differentStrArr.length > 0 &&
      firstStrArr[0][1] === differentStrArr[0][1]
    ) {
      firstStrMap.clear();
      differentMap.clear();
      count++;
    }
  }

  // 아직 남은 문자가 있다면
  count += firstStrMap.size;

  return count;
}

첫글자 Map과 다른글자 Map을 만들어줘서 서로 배열화 해서 길이가 똑같을때 Map을 초기화 해주고 count를 더해주었다.

또한 반복문을 다 돈 후에도 firstStrMap.size 를 더해주어서 count에 더해주었다.

profile
https://brgndy.me/ 로 옮기는 중입니다 :)

0개의 댓글

관련 채용 정보