inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

자바스크립트 알고리즘 문제풀이 입문(코딩테스트 대비)

5. 문자열 압축

챕터3의 5.문자열 압축

321

leesoyun4206

작성한 질문수 2

0

5.문자열 압축에서

s=s+' ' ;

을 사용해서 문자열을 하나더 늘려준다는것은 이해했습니다.

다만 혼자 문제를 풀당시 해당 작업을 하지않아도 값이 올바르게 나오며 오류가 나지 않았는데 왜 오류가 나지않을까요?

javascript 코딩-테스트

답변 2

0

김태원

안녕하세요^^

원래 다른 언어, C++, 파이썬, 자바와 같은 언어는 문자열을 인덱싱할때 문자가 없는 곳을 인덱싱하면 index out of range 에러가 납니다. 하지만 자바스크립트 같은 경우 웹에서 작동하는 언어로 개발되어서 이런 에러에 관대합니다. 그래서 문자가 없는 곳을 인덱싱해도 에러가 나지 않고 undefined 값으로 처리해서 연산을 진행합니다. 그래서 오류가 나지 않고 처리된 것입니다. 아래 코드를 실행해보면 알 수 있을 겁니다.

function solution(s){
  let answer="";
  let cnt=1;
  for(let i=0; i<s.length; i++){
      console.log(s[i+1]);
      if(s[i]===s[i+1]) cnt++;
      else{
          answer+=s[i];
          if(cnt>1) answer+=String(cnt);
          cnt=1;
      }
  }
  return answer;
}

let str="KKHSSSSSSSE";
console.log(solution(str));

0

인프런 AI 인턴

안녕하세요, 인프런 AI 인턴입니다.
leesoyun4206님, ‘5.문자열 압축’ 문제에서 s=s+’ ‘; 을 사용하여 문자열을 하나 더 늘리는 방식은 압축 과정에서 마지막 문자를 처리하기 위함입니다. 이 작업을 하지 않을 경우, 알고리즘의 로직에 따라 마지막 문자를 제대로 처리하지 못할 수 있습니다.

예를 들어, 반복문을 통해 인접한 문자가 같은 지를 확인하면서 압축하는 로직이라면, 마지막 문자에 대한 처리를 명시적으로 해주지 않으면 그 문자를 누락시킬 수 있습니다. 문자열 끝에 공백을 추가함으로써, 마지막 문자가 반복문에서 비교 대상을 만나 처리될 수 있도록 함이 일반적인 이유입니다.

leesoyun4206님이 작성하신 코드에서 오류가 나지 않았다면, 코드의 로직이 달라서 문자열의 끝 처리를 다르게 하고 있을 수 있습니다. 구체적인 코드 구조나 로직을 확인하지 않고서는 정확한 이유를 파악하기 어렵지만, 기본적으로 문자열의 마지막을 처리하는 방법은 알고리즘의 구조에 달려 있습니다.

참고로 각각의 문제 해결 방식은 다를 수 있으며, 작성하신 코드가 오류 없이 올바르게 동작한다면 leesoyun4206님이 개별 문제에 대한 특별한 해결 방법을 찾으셨을 수도 있습니다.

continue를 사용하는 이유

0

79

2

정렬 가능 여부 판단하기

0

64

2

알고리즘 학습법 관련해서 질문드립니다.

0

86

1

코드 리뷰 부탁드립니다!

0

90

1

indexOf를 사용해서 풀어보았습니다 !!

0

68

1

저는 이런식으로 구현 해보았습니다 !!

0

64

1

12,13,14 강의 소리만 나오고 검은 화면입니다

0

100

3

반복문 최소화하고 indexOf 사용해서 풀어봤습니다

0

63

1

영상 보기 전에 직접 풀어봤습니다.

0

74

1

섹션1의 17번문제 이 풀이로 풀어도 될까요?

0

136

2

정규표현식으로 처리해도 상관없나요 ?

0

120

2

3칸씩 건너뛸 수 있을 경우

0

125

2

강의에 대해 질문있습니다.

0

135

2

Object와 Set을 이용해 풀어봤습니다.

0

117

2

이렇게 해도 되나요?

0

102

2

선생님 중복 단어나 중복관련 문제들은 set을 이용하면 좋을것 같습니다.

0

145

2

이렇게 풀어도 괜찮을까요?

0

138

1

이렇게 풀어도 괜찮을까요?

0

112

1

모든 아나그램 찾기에서 시간복잡도

0

98

1

코드리뷰 부탁드립니다.

0

130

1

for loop 탈출은 return 문으로 해도 되지 않나요?

0

133

1

투포인트알고리즘으로 풀어봤습니다.

0

142

0

코드 리뷰 부탁드립니다.

0

120

1

코드 맞게 작성한 거 아닌가여??

0

146

1