알고리즘
프로그래머스 문자열 나누기 자바스크립트
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