Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 30 |
Tags
- UNIX
- 리눅스
- 코딩테스트
- axi
- SQL
- vitis
- Vivado
- hdl
- baekjoon
- Beakjoon
- 자격증
- AMBA BUS
- FPGA
- 정처기
- 정보처리기사
- linux
- amba
- Xilinx
- 실기
- 백준
- verilog
- java
- Backjoon
- Zynq
- boj
- verilog HDL
- chip2chip
- HDLBits
- C++
- Bus
Archives
- Today
- Total
Hueestory
[1541] 잃어버린 괄호 (C++) 본문
#include <iostream>
#include <string>
using namespace std;
int main() {
ios::sync_with_stdio(false);
cin.tie(NULL);
cout.tie(NULL);
string s; cin >> s;
int ans = 0;
bool isMinus = false;
string tmp;
for (int i = 0; i <= s.size(); i++) {
if (s[i] == '-' || s[i] == '+' || i == s.size()) {
if (isMinus)
ans -= stoi(tmp);
else
ans += stoi(tmp);
tmp = "";
}
else
tmp += s[i];
if (s[i] == '-') isMinus = true;
}
cout << ans;
return 0;
}
식의 값을 최소로 만들려면 + 항 끼리 괄호로 묶어주면 된다
ex) 1 + 2 + 3 - 4 + 5 + 6 - 7 + 8 - 9 => (1 + 2 + 3) - (4 + 5 + 6) - (7 + 8) - 9
1. - 기호를 판별하기 위한 bool형 isMinus
2. 임시로 숫자를 저장할 string형 tmp
3. '-, +, s의 끝 부분' 세 조건 중 하나를 만족할 때, 음수면 ans에 tmp를 int형으로 변환해 더한다
4. 만약 위 조건을 만족하지 않으면 tmp에 숫자를 저장한다

'PS(중단) > BOJ' 카테고리의 다른 글
[1456] 거의 소수 (C++) (0) | 2024.05.21 |
---|---|
[1929] 소수 구하기 (C++) (0) | 2024.05.16 |
[1931] 회의실 배정 (C++) (0) | 2024.05.14 |
[1744] 수 묶기 (C++) (0) | 2024.05.14 |
[1715] 카드 정렬하기 (C++) (0) | 2024.05.14 |