min

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

알고리즘

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

minprogramming 2023. 8. 25. 07:34

<문제>

https://school.programmers.co.kr/learn/courses/30/lessons/140108?language=javascript 

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

<나의 풀이>

function solution(s) {
  let answer = 0;
  let var1 = 0;
  let var2 = 0;
  let i = 0;

  while (s.length > 0) {
    if (s[0] === s[i]) {
      var1++;
      i++;
    } else if (s[0] !== s[i]) {
      var2++;
      i++;
    }

    if (var1 === var2) {
      s = s.slice(i, s.length);
      i = 0;
      var1 = 0;
      var2 = 0;
      answer += 1;
    }

  }
  return answer;
}

<다른 사람의 풀이>

function solution(s, count=0) {
    if(!s) return count
    let [first, ...rest] = s.split("")
    let countSame = 1
    let countInSame = 0
    let i=0
    for(; i<rest.length; i++){
        if(rest[i] === first) countSame++
        else countInSame++
        if(countSame === countInSame) break
    }
    return solution(rest.slice(i+1).join(""), count+1)
}

<참고 자료>

slice

https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Array/slice

 

Array.prototype.slice() - JavaScript | MDN

slice() 메서드는 어떤 배열의 begin 부터 end 까지(end 미포함)에 대한 얕은 복사본을 새로운 배열 객체로 반환합니다. 원본 배열은 바뀌지 않습니다.

developer.mozilla.org