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
- 15662
- C++
- 동적프로그래밍
- 회전하는큐
- 14863
- 삼성
- dart
- 재귀함수
- 4811
- 크로스핏
- 스택
- D1
- Flutter
- Python
- Crossfit
- 백준
- BOJ
- 재귀
- 그리디
- 해시해킹
- 서울에서경산까지
- 1로만들기2
- spring boot
- 브루트포스
- 26008
- BOJ14889
- 15353
- sw expert academy
- DP
- 1781
Archives
- Today
- Total
곧죽어도 콛잉
[그리디 / BOJ 1541 / C++] 잃어버린 괄호 본문
https://www.acmicpc.net/problem/1541
1541번: 잃어버린 괄호
첫째 줄에 식이 주어진다. 식은 ‘0’~‘9’, ‘+’, 그리고 ‘-’만으로 이루어져 있고, 가장 처음과 마지막 문자는 숫자이다. 그리고 연속해서 두 개 이상의 연산자가 나타나지 않고, 5자리보다
www.acmicpc.net
진짜 .. 생각 한번만 제대로 하면 쉬운 문제인데 ...
이 문제는 다 필요 없고 마이너스가 한번이라도 나온다면, 그 이후의 값들은 그냥 전부 더해서 빼주면 된다.
이것만 알면 정말 쉽게 접근할 문제 ㅠㅠ
이걸 모르면 인덱스 꼬이고 난리도 아니다..
#include <bits/stdc++.h>
using namespace std;
string s;
int len, res, tmp;
bool flag;
int main(){
cin >> s;
len = (int)s.length();
for(int i = 0 ; i <= len ; i++){
if(s[i] == '-' || s[i] == '+' || i==len){ // 식의 마지막, 혹은 연산자에 만날때
if(flag){
res-=tmp;
tmp=0;
}else {
res+=tmp;
tmp=0;
}
if(s[i]=='-') flag=true;
}else{
tmp*=10;
tmp+= (s[i]-'0');
}
}
cout << res << '\n';
}
'Coding Test > C++' 카테고리의 다른 글
[DP (동적 프로그래밍) / BOJ 4811 / C++] 알약 (0) | 2023.08.12 |
---|---|
[DP (동적 프로그래밍) / BOJ 12852 / C++] 1로 만들기 2 (0) | 2023.08.12 |
[DP (동적 프로그래밍) / BOJ 2342 / C++] Dance Dance Revolution (0) | 2023.08.06 |
[DP (동적 프로그래밍) / BOJ 14863 / C++] 서울에서 경산까지 (0) | 2023.08.06 |
[LIS (가장 긴 증가하는 부분 수열) / BOJ 11053 / C++] 가장 긴 증가하는 부분 수열 (0) | 2023.08.02 |
Comments