문제 링크
문제출처
문제입력에서 정점 번호를 매기는 규칙에 맞게 조건을 나누어 설정해주었고 문제의 이름과 같이 중위순회 (InOrder) 방식을 이용하여 트리를 탐색해야한다. 이는 상단에 InOrder 재귀함수를 보면 쉽게 이해할 수 있을것이다. 가장 좌측부터 탐색하고 끝까지 도달하였으면
문제우선 가장 중요한 것은 연산이 가능한지 불가능한지 판단하는 것이다.n/2보다 같거나 작은 노드가 피연산자를 갖는 경우n/2보다 큰 노드가 연산자를 갖는 경우두 가지 경우에서 연산이 불가능하므로 flag 변수의 값을 0으로 바꿔준다.a >= '0' && a <=
문제우선 가장 중요한 것은 피연산자인지 연산자인지 확인을 하는 것이다.피연산자인 경우연산자인 경우두 가지 경우에서 입력받을 변수들이 달라지며 그에 따른 트리 연결도 해주어야한다.if (b0>='0'&&b0<='9') 는 1번에 해당한다.이 때 char 형으로 숫자
struct node { int data; node left; node right; node par;};constexpr size_t MAX = 10000;node r_find;int node_count = 0;int c_f = 0;int cnt = 0;void fin
using namespace std;void mergeSort(string arr\[], int size){ if (size == 1) return;}int main(){ int t, n; string s; cin >> t; for (int a = 1; a <=
우선 이 문제는 시간초과의 문제만 없더라면 정말 쉽게 풀 수 있는 문제이다.거듭제곱 계산에서 a의 1024제곱을 구할 때 a x a x a x a x a x a .......의 방법으로 한다면 1024 즉 n번의 시간이 필요하지만(a^512) \* (a^512)....