작성
·
225
0
안녕하세요 큰돌님, 코드를 작성 후 실행시켰을 때 오류가 나와 질문드립니다.
제가 작성한 코드는 맨 아래에 있으며, 큰돌님의 코드와 비교 시 어떤 점이 문제있는지를 찾지 못했습니다.
저 코드로 예제 입력시 값이 오류가 나옵니다.
어떤 부분이 오류가 나오는지 알 수 있을까요?
예제 입력 1
2 lo3za4 01
예제 출력 1
1 3 4
실제로 출력된 값
01
11
#include <bits/stdc++.h>
using namespace std;
int n;
string s, ret;
vector<string> v;
void go() {
while(true) {
if(ret.size() && ret.front() == '0') ret.erase(ret.begin());
else break;
}
if(ret.size() == 0) ret = "0";
v.push_back(ret);
ret = "";
}
bool cmp(string a, string b) {
if(a.size() == b.size()) return a < b;
return a.size() < b.size();
}
int main() {
cin >> n;
for(int i=0; i<n; i++) {
cin >> s;
ret = "";
for(int j=0; j<s.size(); j++) {
if(s[i] < 65) ret += s[i];
else if(ret.size()) go();
}
if(ret.size()) go();
}
sort(v.begin(), v.end(), cmp);
for(string i : v) cout << i << "\n";
return 0;
}
답변 1
1
안녕하세요 지혜님ㅎㅎ
for(int j=0; j<s.size(); j++) {
if(s[i] < 65) ret += s[i];
이부분이요 s[i]가 아니라 s[j]가 되어야 하지 않을까요??
또 질문 있으시면 언제든지 질문 부탁드립니다.
좋은 수강평과 별점 5점은 제가 큰 힘이 됩니다. :)
감사합니다.
강사 큰돌 올림.
오타를 제대로 발견하지 못했네요; 무의식중으로 s[i]를 사용하는 버릇이 생겼나봅니다. 답변 감사합니다!