트리구조에 대해서 알아보고 문제를 풀어보았다.
기존까지 트리구조가 나오면 항상 문제를 풀지 못해서 버벅거렸는데 이번에는 그래도 감이라도 잡는것 같아서 정말 다행이다.
ArrayList를 통해서 인접 리스트를 구해서 풀었다.
ArrayList를 통해 2차원 배열을 만드는데 좀 애먹었지만 앞으로는 확실하게 알게될 듯 하다...
지나쳤는지의 여부를 확인하기위해 vis나 isused를 사용한다. 노드의 지나간 점을 확인하는 코드이다. 그리고 Stack혹은 queue를 이용해서 값을 넣어주고 계속 탐색한다. 그 과정에서 depth도 기록해준다.
순열과 조합에 대해서는 아직 많이 어려워하고 힘들어하는 것 같다. 너무 싫당 ㅠ
스택문제이다!
#include <iostream>
#include <algorithm>
#include <stack>
using namespace std;
int main () {
std::ios::sync_with_stdio(0);
std::cin.tie(0);
int m; cin >> m;
int index=1;
stack<int> stack;
string answer="";
for(int i=1; i<=m; i++) {
int n ; cin>>n;
while(index <=n) {
stack.push(index++);
answer += "+ \n";
}
if(stack.size() !=0 && stack.top() > n) {
cout<<"NO";
return 0;
}
stack.pop();
answer += "- \n";
}
cout << answer;
return 0;
}
비교적 간단한 문제였지만 규칙을 찾는것이 꽤 힘들었던 문제다
어제 까먹어서 TIL못올렸다 정말 화가난다
순열과 조합은 언제쯤 잘하게 되는 걸까
#99클럽 #코딩테스트준비 #개발자취업 #항해99 #TIL