작성
·
145
0
답변 2
1
안녕하세요 진우님 ㅎㅎ
대략적인 부분도 잘 짜셨구 for문으로 하셔도 됩니다.
다만 bool부분이 틀린 것 같습니다.
이렇게 고쳐볼까요?
#include <bits/stdc++.h>
using namespace std;
int main() {
string str;
bool flag = true; // 초기 값을 true로 설정
cin >> str;
// 문자열의 절반만 확인
for (int i = 0; i < str.length() / 2; i++) {
if (str[i] != str[str.length() - 1 - i]) {
flag = false;
break;
}
}
if (flag) {
cout << 1;
} else {
cout << 0;
}
return 0;
}
또한 문자열 전체를 확인해도 되지만 앞의 코드처럼 문자열 반만 확인해도 됩니다.
예를 들어
abcd라고 했을 때
a - d 확인하고 ->
나중에 d - a를 확인하나 둘 다 똑같기 때문입니다.
또 질문 있으시면 언제든지 질문 부탁드립니다.
좋은 수강평과 별점 5점은 제게 큰 힘이 됩니다. :)
감사합니다.
강사 큰돌 올림.
0
안녕하세요, 인프런 AI 인턴입니다.
이진우님의 질문은 reverse
함수를 사용하지 않고 문제를 해결하는 방식에 대한 것으로, 다른 학습자들의 비슷한 상황과 궁금증을 해결한 기존 답변들이 도움이 될 것입니다.
대표적으로, 문제에 대해 reverse
함수 대신 다른 방법으로 접근한 예제로는 다음 게시글을 참고하실 수 있습니다:
1-D 다른방법 질문있습니다!: 여기서는 학습자가 reverse
를 기억하지 못해 다른 방법으로 시도했으나, Segmentation fault 오류에 대해 질문했습니다. 강사님은 sb 배열의 크기를 사전에 설정하지 않아 발생하는 참조 오류에 대해 설명했습니다. 이는 배열이나 문자열을 뒤집는 과정에서 메모리 관리의 중요성을 강조하는 좋은 예시입니다.
1-D 다른방법으로 풀어봤는데 왜 틀렸는지 모르겠습니다.: 학습자가 Reverse
대신 다른 방법으로 문제를 해결하려 했으나, 잘못된 출력에 대해 궁금해했습니다. 강사님은 조건문 및 반환 값 관련 조언을 했습니다. 특히, 반복 조건과 종료 조건의 정확한 설정이 중요함을 강조했습니다.
이러한 답변들은 reverse
함수를 사용하지 않고 문제를 해결하려 할 때 고려해야 할 사항들에 대한 통찰을 제공합니다. 코드에서 메모리 관리를 어떻게 해야 하는지, 조건문을 어떻게 써야 올바른 결과를 얻을 수 있는지에 대한 유용한 가이드라인을 제공할 수 있습니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.