자바스크립트 코딩테스트
프로그래머스 Level 1 - 문자열 나누기 (Javascript)
준벨롭
2023. 11. 24. 13:52
문제
답안
function solution(s) {
let x = 0;
let countX = 0;
let answer = [];
// 0번째 글자와 i번째 글자가 같다면 countX를 더해준다.
// 다르다면 countX를 빼주고, 만약 countX가 0이라면, 0부터 i까지 글자를 answer에 넣어준다.
// 넣어주고, x는 i+1로 바꿔준 뒤에 다시 for문에 진입한다.
for(let i = 0; i < s.length; i++){
if(s[i] === s[x])countX++;
else countX--;
if(countX === 0){
answer.push(s.substring(x,i+1));
x = i+1;
}
}
// answer의 길이와 s의 길이가 같다면, answer의 길이를 출력하고, 다르다면 answer에 1을 더한 값을 출력해준다.
// 1을 더하는 것은, 남은 글자들을 처리하는 것이다.(입출력 예 2 번의 마지막 글자인 a와 같은 경우)
return answer.join('').length === s.length ? answer.length : answer.length+1;
}
후기
countX가 0이 되는 순간 바로 answer에 문자열을 자른 값을 넣는 방법이 쉽게 떠오르지 않아 고민했다.
728x90