daisy7024   7년 전

75%에서 자꾸 오답처리가 되네요.

어떠한 부분이 잘못되었는지 조언 부탁드립니다.

제출할 때 scanf_s는 scanf 형식으로 바꾸어서 제출하였습니다.

sgchoi5   7년 전

c 에서 문자열 처리는 null character 가 필요합니다. '\0' 을 할당해줌으로써 문자열의 끝을 표시하게 됩니다.

메모리를 확보할때에 필요한 문자열 크기 +1 해서 null character 자리르 확보해주고 해당 값을 써주어야 printf 시에 제대로 출력을 하게 됩니다.

result 가 초기화 되지 않았는데, strlen 으로 크기를 재는 것은 올바른 코드가 아니니 다른 방식을 이용하시는게 맞을 듯 하네요.

daisy7024   7년 전

#include <cstdio>
#include <string>
#include <iostream>
using namespace std;

int main(void) {
int input_first;
cin >> input_first;

for (int i = 0; i < input_first; i++) {
string result;
int input_max_result;
string mystr;

cin >> input_max_result >> mystr;

result.resize(input_max_result * mystr.size() + 1);

for (int i = 0; i < int(result.size()); i++) {
result[i] = int(mystr[i / input_max_result]);
}
cout << result << '\n';
}

}

코드를 이렇게 고쳤는데도 불구하고 안되네욥.. 알고리즘상 문제가 있는 걸까요

댓글을 작성하려면 로그인해야 합니다.