-
프로그래머스 레벨 2 - 큰 수 만들기 C++쾌락없는 책임 (공부)/알고리즘 문제풀이 2021. 5. 19. 19:49반응형
<스택 활용하기>
#include <string> #include <vector> #include <stack> using namespace std; string solution(string number, int k) { string answer = ""; stack<char> s; for(int i = 0; i < number.size(); i++){ while(!s.empty() && s.top() < number[i] && k > 0){ s.pop(); k--; } s.push(number[i]); } if(k) while(k--) s.pop(); stack<char> ans; while(!s.empty()){ ans.push(s.top()); s.pop(); } while(!ans.empty()){ answer += ans.top(); ans.pop(); } return answer; }
처음 문제를 봤을 때 풀이한 방법입니다. 이전 백준에서 비슷한 문제를 푼 기억이 있어 그떄의 방법을 이용했습니다. 스택에 순서거 뒤로 저장되기 때문에 다음에는 덱을 이용해서 풀이를 해야겠습니다.
반응형'쾌락없는 책임 (공부) > 알고리즘 문제풀이' 카테고리의 다른 글
백준 4179 불! - C++ (0) 2021.05.26 프로그래머스 단어 변환 - C++ (0) 2021.05.20 프로그래머스 입국심사 - C++ (0) 2021.05.19 프로그래머스 네트워크 - C++ (0) 2021.05.18 프로그래머스 N으로 표현 - C++ (0) 2021.05.13