강의로 돌아가기
dydrltk1379@gachon.ac.kr

8, 9 테스트 케이스만 맞고 나머지 틀린다는데 왜 틀린지 모르겠습니다.

코드 실행은 잘 되는데 제출할 때 틀립니다.
그래서 공백이 문제인가 해서 그것또한 제거했지만 그대로입니다.
케이스가 어떤 건가요?

작성중인 코드―solution.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#include <string>
#include <vector>
#include <sstream>

using namespace std;

int solution(string my_string) {
    int answer = 0;

    stringstream ss(my_string);
    string c;
    string word;
    while(getline(ss,word,' ')){
        c+=word;
    }

    answer = stoi(c);
    for(int i=1; i<c.size(); i++){
        if(c[i]=='+'){
            i++;
            answer+=c[i] - 48;
        }else if(c[i]=='-'){
            i++;
            answer-=c[i] - 48;
        }
    }

    return answer;
}
2 개의 답변
cyeongy

제한사항에 "my_string에는 연산자가 적어도 하나 포함되어 있습니다." 라는 문구가 있습니다.
해당 문제는 "3 + 4" 만이 아니라 "3 + 4 + 5" 혹은 "3 + 4 - 5" 와 같은 여러 조합의 덧셈 뺄셈 조합을 고려해야합니다.

  • dydrltk1379@gachon.ac.kr

    혹시 몰라서 1 -2 + 3 - 4 인 테스트케이스를 집어넣었는데도 통과는 됩니다...

    dydrltk1379@gachon.ac.kr―2023.01.16 10:25
MBTI_BEST

두 자리수 이상의 자연수에 대응하는 코드를 짜지 않았을 경우 8, 9만 통과하게 됩니다.
1 - 20 + 30 - 4를 돌려보세요.
저도 그거때문에 삽질했네요

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