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

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

작성한 질문수

10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트

2-I

2-I 코드 오류 질문

작성

·

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]를 사용하는 버릇이 생겼나봅니다. 답변 감사합니다!

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

작성한 질문수

질문하기