본문 바로가기

Develop/Python + SWEA96

[SW Expert Academy] 1232. 사칙연산 1232. 사칙연산 문제) 사칙연산으로 구성되어 있는 식은 이진 트리로 표현할 수 있다. 아래는 식 “(9/(6-4))*3”을 이진 트리로 표현한 것이다. 임의의 정점에 연산자가 있으면 해당 연산자의 왼쪽 서브 트리의 결과와 오른쪽 서브 트리의 결과를 사용해서 해당 연산자를 적용한다. 사칙연산 “+, -, *, /”와 양의 정수로만 구성된 임의의 이진트리가 주어질 때, 이를 계산한 결과를 출력하는 프로그램을 작성하라. 단, 중간 과정에서의 연산은 실수 연산으로 하되, 최종 결과값이 정수로 떨어지지 않으면 정수부만 출력한다. 위의 예에서는 최종 결과값이 13.5이므로 13을 출력하면 된다. [제약 사항] 정점의 총 수 N은 1≤N≤1000. [입력] 각 테스트 케이스의 첫 줄에는 각 케이스의 트리가 갖는 .. 2022. 3. 17.
[SW Expert Academy] 5178. 노드의 합 5178. 노드의 합 문제) 완전 이진 트리의 리프 노드에 1000이하의 자연수가 저장되어 있고, 리프 노드를 제외한 노드에는 자식 노드에 저장된 값의 합이 들어있다고 한다. 다음은 리프 노드에 저장된 1, 2, 3이 주어졌을 때, 나머지 노드에 자식 노드의 합을 저장한 예이다. N개의 노드를 갖는 완전 이진 트리의 노드 번호는 루트가 1번이 되며, 같은 단계에서는 왼쪽에서 오른쪽으로 증가, 단계가 꽉 차면 다음단계의 왼쪽부터 시작된다. 완전 이진 트리의 특성상 1번부터 N번까지 빠지는 노드 번호는 없다. 리프 노드의 번호와 저장된 값이 주어지면 나머지 노드에 자식 노드 값의 합을 저장한 다음, 지정한 노드 번호에 저장된 값을 출력하는 프로그램을 작성 하시오. [입력] 첫 줄에 테스트케이스의 수 T가 주.. 2022. 3. 17.
[SW Expert Academy] 5176. 이진탐색 5176. 이진탐색 문제) 1부터 N까지의 자연수를 이진 탐색 트리에 저장하려고 한다. 이진 탐색 트리는 어떤 경우에도 저장된 값이 왼쪽 서브트리의 루트 2022. 3. 17.
[SW Expert Academy] 5174. subtree 5174. subtree 문제) 트리의 일부를 서브 트리라고 한다. 주어진 이진 트리에서 노드 N을 루트로 하는 서브 트리에 속한 노드의 개수를 알아내는 프로그램을 만드시오. 주어지는 트리는 부모와 자식 노드 번호 사이에 특별한 규칙이 없고, 부모가 없는 노드가 전체의 루트 노드가 된다. 이런 경우의 트리는 부모 노드를 인덱스로 다음과 같은 방법으로 나타낼 수 있다. 자식 노드가 0인 경우는 노드가 자식이 없는 경우이다. [입력] 첫 줄에 테스트케이스의 수 T가 주어진다. 1 2022. 3. 17.