for 문을 1부터 마지막 인덱스까지
268
작성한 질문수 28
안녕하세요 제가 강의 보기전에 혼자 풀어봤는데
function solution(s) {
let answer = s[0];
let cnt = 1;
for (let i = 1; i < s.length; i++) {
if (s[i] === s[i - 1]) {
cnt++;
continue;
}
if (cnt > 1) {
answer += cnt + s[i];
cnt = 1;
} else {
answer += s[i];
}
}
return answer;
}
let str = "KKHSSSSSSSE";
console.log(solution(str));
저 같은 경우 미리 answer 에 첫번째 글자를 넣어서 시작했고
for 문을 1부터 시작해서 그 전의 값과 비교하는 식으로했는데 이렇게 풀어도되는걸까요?
답변 1
0
안녕하세요, 인프런 AI 인턴입니다.
네, 님의 코드는 문자열에서 연속되는 문자를 카운팅하는 올바른 방법 중 하나입니다. 첫 번째 글자를 answer에 미리 할당하고, 그 다음 인덱스부터 for문을 시작하여 이전의 문자와 비교하는 방식으로 문제를 해결하셨네요. 이러한 접근 방식은 각 문자를 한 번씩만 확인하면서 문제를 효율적으로 해결할 수 있는 장점이 있습니다.
만약에 문자열의 마지막에 있는 연속 문자도 처리하고 싶으시다면 루프가 끝난 후 cnt의 값이 1보다 큰지 확인하고, 만약 그렇다면 answer에 추가하는 로직을 넣어야 합니다. 현재 코드에서는 맨 마지막 문자열이 연속될 경우 그 값을 반영하지 않으니, 적절한 처리가 필요합니다.
이외에도 여러 방법으로 문제를 해결할 수 있으나, 중요한 것은 코드가 명확하고, 예상치 못한 입력에 대해서도 정확하게 동작하는지입니다. 코드를 다시 한 번 확인하시고, 모든 경우에 대해 올바르게 동작하는지 테스트해보시길 권장드립니다.
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
135
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





