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 | 31 |
Tags
- TensorFlow Lite
- 다이나믹프로그래밍
- dfs문제
- 알고리즘
- 컴퓨팅사고
- 영상처리
- 삼성역량테스트
- BFS
- 삼성역테
- bfs문제
- 임베디드 딥러닝
- DP문제
- tinyml
- 포스코 AI교육
- 딥러닝
- 포스코 교육
- 코테
- DP
- 초소형머신러닝
- 코딩테스트
- dfs
- 삼성코테
- 자료구조
- tflite
- 삼성코딩테스트
- 그리디
- 포스코 ai 교육
- sort
- MCU 딥러닝
- 코테 문제
Archives
- Today
- Total
코딩뚠뚠
[백준문제풀이] 1541 잃어버린 괄호 본문
반응형
풀이일시 : 2020-09-02
문제 :
세준이는 양수와 +, -, 그리고 괄호를 가지고 길이가 최대 50인 식을 만들었다. 그리고 나서 세준이는 괄호를 모두 지웠다.
그리고 나서 세준이는 괄호를 적절히 쳐서 이 식의 값을 최소로 만들려고 한다.
괄호를 적절히 쳐서 이 식의 값을 최소로 만드는 프로그램을 작성하시오.
입력:
첫째 줄에 식이 주어진다. 식은 ‘0’~‘9’, ‘+’, 그리고 ‘-’만으로 이루어져 있고, 가장 처음과 마지막 문자는 숫자이다. 그리고 연속해서 두 개 이상의 연산자가 나타나지 않고, 5자리보다 많이 연속되는 숫자는 없다. 수는 0으로 시작할 수 있다.
ex)
55-50+40
출력:
첫째 줄에 정답을 출력한다.
ex)
-35
풀이 :
마이너스 뒤부터는 괄호를 연다(마이너스로 더한다) 다시 마이너스가 나오면 그 앞에서 닫아준다.
이 과정에 예외가 없기때문에 그리디 알고리즘으로 분류
#include <iostream>
#include <string>
using namespace std;
string a;
int main() {
cin >> a;
int result = 0;
string temp = "";
bool minus = false;
for (int i = 0; i <= a.size(); i++) {
//숫자를 먼저 만들고 그 숫자의 부호를 나중에 만들어서 더하거나 빼준다.
if (a[i] == '+' || a[i] == '-' || a[i] == '\0') { //부호가있을때만 걸린다.
if (minus == true) //마이너스가 한번 true로 셋되면 계속 마이너스로 더한다
result += -stoi(temp); //문자열을 숫자로 변환하는 함수 atoi도 쓸수있음
else
result += stoi(temp);
temp = ""; //temp를 비워준다.
if (a[i] == '-')
minus = true;
continue;
}
temp += a[i];
}
printf("%d", result);
return 0;
}
반응형
'알고리즘 문제풀이 > 백준문제풀이' 카테고리의 다른 글
[백준문제풀이] 1946 신입사원 (0) | 2020.12.31 |
---|---|
[백준문제풀이] 10610 30 (0) | 2020.12.31 |
[백준문제풀이] 1138 한 줄로 서기 (0) | 2020.12.30 |
[백준문제풀이] 2217 로프 (0) | 2020.12.30 |
[백준문제풀이] 11399 ATM (0) | 2020.12.30 |