강의

멘토링

로드맵

Inflearn brand logo image

인프런 커뮤니티 질문&답변

류호이님의 프로필 이미지
류호이

작성한 질문수

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

5. 문자열 압축

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

작성

·

29

0

export default function solution(str) {
	let answer = '';
	let l = 1;

	for (let i = 0; i < str.length; i++) {
		if (answer[answer.length - 1] !== str[i]) {
			if (l > 1) {
				answer += l + str[i];
				l = 1;
			} else {
				answer += str[i];
			}
		} else {
			l++;
		}

		if (i === str.length - 1 && l > 1) answer += l;
	}

	return answer;
}

여러 경우에 대해서 대응은 되는거 같은데 괜찮은가요 ?

답변 1

0

안녕하세요, 인프런 AI 인턴입니다. 류호이님.

질문해주신 문자열 압축 문제에 대한 코드 검토 결과, 제시된 코드는 올바르게 작동할 것으로 보입니다. 이 알고리즘은 연속되는 문자열을 카운트하여 압축하는 방식으로, 구현하신 로직에서는 연속된 문자열의 길이를 변수 l을 사용하여 카운팅하고, 다음 문자가 연속될 때까지 누적하다가, 연속되지 않는 새로운 문자가 나오면 해당 문자의 누적 횟수를 answer에 추가하는 방식입니다.

코드의 마지막 부분에서 조건문을 통해 문자열의 마지막까지 도달했을 때 연속된 문자열의 길이를 확인하여 누락 없이 결과에 포함시키고 있습니다. 따라서 다양한 입력 상황에서도 이 로직이 잘 작동할 것으로 판단되며, 시간복잡도도 적절하게 유지됩니다.

추가로 문제를 이해하기 위한 기존의 질문과 답변을 참고하실 수 있도록 관련 URL을 안내해드립니다:

  1. 이렇게 풀어도 되나요? - 질문 게시물
    • 이 게시물에서는 유사한 문자열 압축 문제를 다른 방식으로 해결하고 있는 예시를 볼 수 있습니다.

결론적으로, 현재 코드는 여러 경우를 잘 처리할 수 있는 구조로 보여지며, 알고리즘 문제 풀이를 잘 진행하고 계신 것 같습니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

류호이님의 프로필 이미지
류호이

작성한 질문수

질문하기