반응형

IT 프로그래밍/백준 55

[C++] 백준 10799번 쇠막대기

정답코드#include #include #include using namespace std;int main(){ string input; stack s; getline(cin, input); int cnt = 0; for(int i=0; i그려보지 않고서는 이해가지 않을 수 있습니다. () 이렇게 괄호 안에 아무것도 없이 만날 때는 쇠막대기를 쪼개는 것이고 그렇지 않을 경우 괄호 안에 (나 )가 포함되어 있는 경우에는 쇠막대기가 되는 구조입니다. 이 문제는 쇠막대기와 관련된 괄호 표현을 해석하는 문제입니다. 문제의 핵심은 주어진 괄호 문자열이 어떻게 쇠막대기의 개수와 관련되는지를 이해하는 것입니다. 문제 풀이 개념쇠막대기와 레이저의 표현:(는 쇠막대기의 시작입니다.)는 쇠막대기의 끝을 나타내기도 하지만,..

[C++] 백준 4949번 균형잡힌 세상

정답코드#include #include #include using namespace std;int main(){ while(1) { string input; getline(cin, input); if (input == ".") { break; //마지막 조건이 .이므로 .이 들어가면 break; } stack s1; bool flag = 0; for (int i = 0; i 일단 .이 들어가면 탈출해야 하므로 IF문을 통해 BREAK;가 되도록 만들어줍니다. 이후 while문을 통해 getline으로 읽은 문장의 char 하나하나를 분석하면 됩니다. 먼저 ( 나 [가 나올 때는 push를 해주는 것으로 하고 그 다음 조건에서는 top이 ( 이거나 [ 일 때 만약 empty가 비어있지 않..

[c++] 1874번 스택 수열

정답코드#include #include #include using namespace std;int main(){ int cnt = 1; int n; cin >> n; stack s; vector result; for (int i = 0; i > x; while(cnt 스택을 이용하여 해결하면 됩니다. 여기서 마지막 vector를 출력해낼 때 endl을 사용할 경우 버퍼를 계속해서 플러시하면서 시간 초과가 발생할 수 있으니 \n으로 바꾸어주면 됩니다. 알고리즘은 s.top이 x가 아니라면 계속해서 + 를 해주면 되기에 result에 +를 pushback 해주고 만약 top 즉 맨 최근에 들어온 스택에서의 상단의 값이 x라면 - 즉 pop을 해줘야 하기 대문에 pop을 해준 다음 result에 -를 pus..

[C++] 백준 10773 제로

정답코드#include #include using namespace std;int main(){ stack s; int n; int num; int sum = 0; cin >> n; for(int i=0; i> num; if (num != 0) s.push(num); else { s.pop(); } } while(!s.empty()) { sum += s.top(); s.pop(); } cout push하는 과정은 for문으로 n을 입력 받은 후 실행하도록 하면 됩니다. 물론 문제에는 K이기에 K를 변수로 지정하면 됩니다. push하고 0이면 pop하고, 이런 식으로 하다가 sum을 구해줘야 하는데 stack은 배열과 다르게 sum을 계산해야 합니다. 각각 하나의 구조체 느낌으로 판단해야..

[C++] 백준 10828 스택

정답코드#include #include using namespace std;int main(){ stack s; int N; string command; int num; int result = 0; cin >> N; for(int i=0; i> command; if(command == "push") { cin >> num; s.push(num); } else if(command == "pop") { if (s.size() == 0) { result = -1; cout c++은 스택을 지원하기 때문에 라이브러리에 스택을 넣어주고 해주시면 됩니다. coimmand로 각각 입력받을 것을 if문을 걸어준 뒤 각 동작에 해당하는 것을 만들어주면 됩니다. push의 경우 그냥 pu..

[C++] 백준 5086번 배수와 약수

풀이#include using namespace std;int main(){ while(1) { int x, y; cin >> x >> y; if (x == 0 && y == 0) break; if (y % x == 0) cout %를 이용해서 풀면 됩니다. IF와 else if를 사용해서 하면 되고 x == 0 이고 y ==0 일때 나가야 하니 break;문을 걸어줘서 하면 간단하게 풀 수 있습니다. 그리고 얼마나 받을지 개수가 정해지지 않았기 떄문에 while문으로 받습니다.  읽으면서 쭉 풀면 되는 문제입니다.

[C++] 백준 9012번 괄호

코딩에서 어쨌든 한번은 접해봤을 스택을 다루는 기본적인 문제입니다.stack을 이용해서 풀면 되는 것이고 스택에 대한 기본적인 개념이 있어야 풀 수 있는 문제입니다. stack 개념과 empty의 활용, push와 pop이 스택에서 어떤 역할을 하는지에 대한 개념이 있다면 어렵지 않게 풀 수 있습니다.  정답코드#include #include using namespace std;string checkVPS(string input){ stack ps; for (int i = 0; i > n; for(int i=0; i> ans; cout 문제를 읽으면 괄호를 어떻게 다뤄야 하는지 알 수 있습니다.  먼저 스택을 이용하기 위해 stack ps; 라는 스택을 하나 만들어줍니다. 그 다음 괄호 만큼 읽어와야하..

반응형