강의로 돌아가기
이재열

리턴값이 이상하게 나옵니다.

리턴하기 직전에 출력을 해보면 정확하게 나옵니다. 그런데 실행하면 실행한 값 사이사이에 0이 끼어있습니다. 왜 이런건가요?

예)
for (int i : arr) std::cout << i << " ";
return arr;

실행 시 -
실행한 결괏값 { 0, 0, 1, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 4, 0, 3, 0, 5, 0 }이(가) 기댓값 { 0, 1, 1, 2, 1, 3, 1, 4, 3, 5 }와(과) 다릅니다.
출력 : 0 1 1 2 1 3 1 4 3 5

작성중인 코드―solution.cpp
1
2
3
4
5
6
7
8
9
10
11
12
#include <vector>
#include <iostream>

std::vector<long long> solution(long long begin, long long end) {
    std::vector<long long> arr(end, 0);
    for (long long i(1); i * 2 <= end; ++i)
        for (long long j((2 * i) - 1); j < end; j += i)
            arr[j] = i;
    //for (long long i : arr) std::cout << i << " ";
    ///std::cout << std::endl;
    return arr;
}
1 개의 답변
Demi

solution 함수의 원형을 유지해주세요. solution 함수는 int 벡터를 리턴해야하는데, 제출하신 코드는 long long 형 벡터를 리턴하고있습니다. :)

답변 쓰기
이 입력폼은 마크다운 문법을 지원합니다. 마크다운 가이드 를 참고하세요.