작성자 없음
작성자 정보가 삭제된 글입니다.
작성
·
170
·
수정됨
0
안녕하세요.
아래 코드블럭은 다른 풀이로 푼 코드인데, 이건 통과가 됩니다.
근데 문제는 첨부한 링크의 코드는 왜 통과가 안되는지 모르겠습니다 ㅠㅠ
나름의(?) 성능향상 빼고는 동일한 코드라고 생각이 드는데 뭐가 문제일까요?
통과
#include <bits/stdc++.h>
using namespace std;
string s;
int ret = 1;
int main() {
ios_base::sync_with_stdio(false);
cin.tie(NULL);
cout.tie(NULL);
cin >> s;
for (int i = 0; i < s.size() / 2; i++) {
if (s[s.size() - 1 - i] == s[i]) {
ret = 1;
} else {
ret = 0;
break;
}
}
cout << ret << '\n';
return 0;
}
에러
http://boj.kr/91c918183ef8436187679d76a3e38c96
p.s. 백준에서는 s.size()의 타입 관련한 에러라고 뜨는데… 그게 문제라면 둘다 에러가 나야하는거 아닌가 해서요. (vscode에서 컴파일 에러는 안뜹니다.)
항상 감사합니다.
답변 1
0
안녕하세요 호윤님 ㅎㅎ
다를 경우 break;를 걸어주어야 하지 않을까요?
그니까 다음과 같은 식으로요.
for (int i = 0; i < s.size(); i++) {
cout << s.size() - 1 - i << " : " << i << '\n';
if (s[s.size() - 1 - i] == s[i]) {
ret = 1;
} else {
ret = 0;
break;
}
}
또 질문 있으시면 언제든지 질문 부탁드립니다.
좋은 수강평과 별점 5점은 제게 큰 힘이 됩니다. :)
감사합니다.
강사 큰돌 올림.