Dolphins의 HelloWorld
[백준]Baekjoon1541(Greedy Algorithm) 본문
문제링크 : https://www.acmicpc.net/problem/1541
한번 마이너스가 나오기 전까지는 값들이 모두 양수로 더해지지만
마이너스가 나오고 난 후에는 그 후의 + 는 모두 - 안에서 괄호로 묶이기 때문에
부호가 무엇이든 빼지는 것으로 생각해도 무방하다.
#include <iostream> #include <string> #include <algorithm> using namespace std; int main() { int result = 0; int first = 0; string str; bool minus = false; cin >> str; int size = str.size(); for (int i = 0; i < size; i++) { if (!minus) { if (str[i] == '+') { result += stoi(str.substr(first, i - first)); first = i + 1; } else if (str[i] == '-') { result += stoi(str.substr(first, i - first)); first = i + 1; minus = true; } else if (i == size - 1) { result += stoi(str.substr(first, i + 1 - first)); } } else { if (str[i] == '-' || str[i] == '+') { result -= stoi(str.substr(first, i - first)); first = i + 1; } else if (i == size - 1) result -= stoi(str.substr(first, i + 1 - first)); } } printf("%d\n", result); }
'Algorithm > baekjoon문제풀이' 카테고리의 다른 글
[백준]Baekjoon2875(Greedy Algorithm) (0) | 2018.08.28 |
---|---|
[백준]Baekjoon1744(Greedy Algorithm) (0) | 2018.08.28 |
[백준]Baekjoon11399(Greedy Algorithm) (0) | 2018.08.28 |
[백준]Baekjoon1931(Greedy Algorithm) (0) | 2018.08.28 |
[백준]Baekjoon11047(Greedy Algorithm) (0) | 2018.08.28 |
Comments