중요 지식


없다

코드


#include <iostream>
#include <string>

using namespace std;

int main(){
    string str;
    int num = 0 , sum = 0, sign = 1;

    cin >> str;

    str = str + '=';
    for(char ch: str){
        if(ch >= '0' && ch <= '9'){
            num = num*10 + (ch - '0');
        }else{
            sum += sign * num;
            num = 0;
        }

        if(ch == '-'){
            sign = -1;
        }
    }

    cout << sum;

    return 0;
}

풀이


값을 더하다가 '-'이후애 나오는 모든 값을 빼주면 된다

 

질문1 str = str + '='; 를 넣은 이유

간단하게 조회하기 위해 범위기반 for문을 사용했습니다 문자형태인 정수조각을 감지하고 완전한 정수로 만드는 과정에서 다음에 올 문자가 정수인지 아닌지 알 수 없기 때문에 숫자가 아닌 문자가 왔을 때만 값을 더합니다 그래서 뒤에 있는 정수도 계산하기 위해 문자를 넣어준 것입니다

'프로그래밍 문제집 > 백준' 카테고리의 다른 글

7662번-이중 우선순위 큐  (0) 2022.02.12
1927번-최소 힙  (0) 2022.02.11
1389번: 케빈 베이컨의 6단계 법칙  (0) 2022.02.09
1107번-리모컨  (0) 2022.02.07
1074번-Z  (0) 2022.02.03

+ Recent posts