Coding Test/프로그래머스 Lv.0

알고리즘 - 문자열 요약하기 (어려움)

sangwoo_rhie 2023. 5. 30. 20:54

# 문제의 번호별 조건에 대한 입력 예시와 출력
Ex 1)
abc 	# a1/b1/c1

Ex 2-1)
aaabbbc	# a3/b3/c1

Ex 2-2)
abbbc	# a1/b3/c1

Ex 3-1)
ahhhhz	# a1/h4/z1

Ex 3-2)
acccdeee	# a1/c3/d1/e3

문제풀이

 

function summarizing_string (target_string){
    let n = target_string.length  // loop를 구해야 하므로 length를 구함
    let count = 0;                 // 모든 숫자의 카운트는 0번째부터.
    let result_str = " "           

    for (let i = 0; i < n-1; i++){
        if (target_string[i] === target_string[i+1] )
        {count ++} else{
            result_str += target_string[i] + String(count+1) + '/';
            count = 0;
        }
        return result_str;
    }

for문에서 i가 n-1까지 인 이유는, 첫번째 if문에서 i (count)에 1을 추가하기 때문.

 

 if문 = 기존 문자가 그다음 문자와 같은경우, count에 1추가함.

else문 = 기존문자가 그다음 문자와 다른경우. 

 

 

 

ex)

A (alphabet)  -  B (count)

a                   2

h                  1

t                   5

k                   3

u                  1