티스토리 뷰
728x90
programmers.co.kr/learn/courses/30/lessons/67257
정말 다 맞게 한 것 같은데 테스트 3개가 틀려서 뭔가 했더니
answer값 갱신하는 if문 위치가 잘못됐었다..
while문 바로 안에 들어가 있어야하는데 while문 안의 for문안에 들어가 있었다^^..
#include <string>
#include <vector>
#include <cmath>
#include <algorithm>
using namespace std;
long long cal(long long a, long long b, char op){
if(op == '*'){
return a*b;
}else if(op == '+'){
return a+b;
}else{
return a-b;
}
}
long long solution(string expression) {
long long answer = 0;
vector<long long> nums;
vector<char> op;
long long num = 0;
for(int i = 0 ; i < expression.length() ; i++){
char c = expression[i];
if(c >= '0'&& c <= '9'){
num = num*10 + c-'0';
}else{
op.push_back(c);
nums.push_back(num);
num = 0;
}
}
nums.push_back(num);
vector<char> opp = {'*','+','-'};
do{
vector<char> tmp_op = op;
vector<long long> tmp_nums = nums;
for(int i = 0 ; i < 3 ; i++){
for(int j = 0 ; j < tmp_op.size() ; j++){
if(tmp_op[j] == opp[i]){
tmp_nums[j] = cal(tmp_nums[j],tmp_nums[j+1],tmp_op[j]);
tmp_nums.erase(tmp_nums.begin()+j+1);
tmp_op.erase(tmp_op.begin()+j);
j--;
}
}
}
if(answer < abs(tmp_nums[0])){
answer = abs(tmp_nums[0]);
}
}while(next_permutation(opp.begin(), opp.end()));
return answer;
}
728x90
'알고리즘 문제풀이' 카테고리의 다른 글
[백준 11066] 알고리즘 94일차 : 파일 합치기 (0) | 2021.06.28 |
---|---|
[프로그래머스] 튜플 (0) | 2021.05.07 |
[백준 1475] 알고리즘 93일차 : 방 번호 (2) | 2021.02.26 |
[백준 1158] 알고리즘 92일차 : 요세푸스 문제 (0) | 2021.02.25 |
[백준 13305] 알고리즘 91일차 : 주유소 (0) | 2021.02.24 |
250x250
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 파이썬
- 우선순위큐
- 그리디알고리즘
- 웹크롤링
- Swift
- 트리
- 이분탐색
- BFS
- 알고리즘
- 토마토
- 백트래킹
- 정렬
- 최대힙
- c++
- 다이나믹프로그래밍
- 프로그래머스
- 가장 큰 수 Swift
- 동적계획법
- 자바
- dp
- 가장 큰 수 프로그래머스
- 수학
- 브루트포스
- 게임이론
- dfs
- 백준
- 최소힙
- 최단경로
- 투포인터
- 스택
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함