๐Ÿ’  BOJ/Class 3

[BOJ][C++] ๋ฐฑ์ค€ 1541๋ฒˆ: ์žƒ์–ด๋ฒ„๋ฆฐ ๊ด„ํ˜ธ

์„ ๋‹ฌ 2023. 3. 28. 23:17
๋ฐ˜์‘ํ˜•

 

https://www.acmicpc.net/problem/1541

 

1541๋ฒˆ: ์žƒ์–ด๋ฒ„๋ฆฐ ๊ด„ํ˜ธ

์ฒซ์งธ ์ค„์— ์‹์ด ์ฃผ์–ด์ง„๋‹ค. ์‹์€ ‘0’~‘9’, ‘+’, ๊ทธ๋ฆฌ๊ณ  ‘-’๋งŒ์œผ๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ๊ณ , ๊ฐ€์žฅ ์ฒ˜์Œ๊ณผ ๋งˆ์ง€๋ง‰ ๋ฌธ์ž๋Š” ์ˆซ์ž์ด๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์—ฐ์†ํ•ด์„œ ๋‘ ๊ฐœ ์ด์ƒ์˜ ์—ฐ์‚ฐ์ž๊ฐ€ ๋‚˜ํƒ€๋‚˜์ง€ ์•Š๊ณ , 5์ž๋ฆฌ๋ณด๋‹ค

www.acmicpc.net

 

๋ฌธ์ œ

์„ธ์ค€์ด๋Š” ์–‘์ˆ˜์™€ +, -, ๊ทธ๋ฆฌ๊ณ  ๊ด„ํ˜ธ๋ฅผ ๊ฐ€์ง€๊ณ  ์‹์„ ๋งŒ๋“ค์—ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋‚˜์„œ ์„ธ์ค€์ด๋Š” ๊ด„ํ˜ธ๋ฅผ ๋ชจ๋‘ ์ง€์› ๋‹ค.

๊ทธ๋ฆฌ๊ณ  ๋‚˜์„œ ์„ธ์ค€์ด๋Š” ๊ด„ํ˜ธ๋ฅผ ์ ์ ˆํžˆ ์ณ์„œ ์ด ์‹์˜ ๊ฐ’์„ ์ตœ์†Œ๋กœ ๋งŒ๋“ค๋ ค๊ณ  ํ•œ๋‹ค.

๊ด„ํ˜ธ๋ฅผ ์ ์ ˆํžˆ ์ณ์„œ ์ด ์‹์˜ ๊ฐ’์„ ์ตœ์†Œ๋กœ ๋งŒ๋“œ๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์‹œ์˜ค.

์ž…๋ ฅ

์ฒซ์งธ ์ค„์— ์‹์ด ์ฃผ์–ด์ง„๋‹ค. ์‹์€ ‘0’~‘9’, ‘+’, ๊ทธ๋ฆฌ๊ณ  ‘-’๋งŒ์œผ๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ๊ณ , ๊ฐ€์žฅ ์ฒ˜์Œ๊ณผ ๋งˆ์ง€๋ง‰ ๋ฌธ์ž๋Š” ์ˆซ์ž์ด๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์—ฐ์†ํ•ด์„œ ๋‘ ๊ฐœ ์ด์ƒ์˜ ์—ฐ์‚ฐ์ž๊ฐ€ ๋‚˜ํƒ€๋‚˜์ง€ ์•Š๊ณ , 5์ž๋ฆฌ๋ณด๋‹ค ๋งŽ์ด ์—ฐ์†๋˜๋Š” ์ˆซ์ž๋Š” ์—†๋‹ค. ์ˆ˜๋Š” 0์œผ๋กœ ์‹œ์ž‘ํ•  ์ˆ˜ ์žˆ๋‹ค. ์ž…๋ ฅ์œผ๋กœ ์ฃผ์–ด์ง€๋Š” ์‹์˜ ๊ธธ์ด๋Š” 50๋ณด๋‹ค ์ž‘๊ฑฐ๋‚˜ ๊ฐ™๋‹ค.

์ถœ๋ ฅ

์ฒซ์งธ ์ค„์— ์ •๋‹ต์„ ์ถœ๋ ฅํ•œ๋‹ค.

 

ํ’€์ด

๊ด„ํ˜ธ ๊ฐฏ์ˆ˜ ์ œํ•œ์ด ์—†๋‹ค.

55-50+40

55-(50+40)
1 + 2 + 3 - 4 + 5 + 6 - 7 + 8
1 + 2 + 3 - (4 + 5 + 6) - (7 + 8)

์ด๋Ÿฐ์‹์œผ๋กœ ๊ทธ๋ƒฅ ๋งˆ์ด๋„ˆ์Šค ๋‚˜์˜ค๊ธฐ๋งŒ ํ•˜๋ฉด ๊ทธ ๋’ค์— ์œ ์—ฐํ•˜๊ฒŒ ๊ด„ํ˜ธ๋ฅผ ๋„ฃ์–ด์„œ ๋ชจ๋“  ์ˆ˜๋ฅผ ๋งˆ์ด๋„ˆ์Šค๋˜๊ฒŒ ํ•  ์ˆ˜ ์žˆ๋‹ค.

๋”ฐ๋ผ์„œ ๋งˆ์ด๋„ˆ์Šค๊ฐ€ ๋‚˜์˜ค๊ธฐ ์ „๊นŒ์ง€๋Š” ์ˆ˜๋“ค์„ ๋”ํ•˜๊ณ , ๊ทธ ํ›„์—๋Š” ๋‹ค ๋นผ์ž

 

๋‹ค๋งŒ ์ธํ’‹์ด ๋ฌธ์ž์—ด๋กœ ๋ชฝ๋•… ์ฃผ์–ด์ง€๊ธฐ๋•Œ๋ฌธ์—.. 

์ด๊ฑฐ ์ฒ˜๋ฆฌํ•˜๋Š”๊ฒŒ ์‚ด์ง ์„ฑ๊ฐ€์…จ๋‹ค.

#include <iostream>
#include <string>

using namespace std;

int main() {
    string input;
    cin >> input;
    
    int answer = 0;
    bool isMinus = false;
    string num = "";
    char cur;
    for(int i=0; i<=input.size(); i++) {
        cur = input[i];

        if(cur == '+' || cur == '-' || i == input.size()) {
            if(isMinus) {
                answer -= stoi(num);
            } else {
                answer += stoi(num);
            }
            num = "";
        } else {
            num += cur;
        }
        
        if(cur == '-') {
            isMinus = true;
        }
    }
    
    cout << answer;
    
    return 0;
}
๋ฐ˜์‘ํ˜•