알파벳 트리 장난감
보통
유형
프로그래밍
배점
100점
참여자
84
정답률
79.7%
3
1
문제
포화 이진 트리 형태의 알파벳 트리 장난감이 있습니다. 이 장난감의 각 노드(node)에는 알파벳이 쓰여있고, 루트노드(root node)의 윗부분에는 구멍이 나있습니다. 이 구멍을 통해 공을 넣으면 50%의 확률로 왼쪽 또는 오른쪽 자식노드(child node)로 굴러갑니다. 그렇게 맨 마지막의 리프노드(leaf node)에 도달하면 공은 멈춥니다. 또한 공이 한번 들어간 노드는 불이 켜지기 때문에, 공이 어느 경로를 통해 굴러내려왔는지 알 수 있지요. 만약 위에서부터 A, B, C, D, E, F, G라는 알파벳이 순서대로 적혀 있도록 트리 장난감을 배치했을 때 A, B, E 경로로 공이 굴러내려왔다면 다음 그림과 같이 불이 켜지게 됩니다.
루트노드에서부터 리프노드까지 불이 켜진 경로를 따라 각 노드에 적힌 알파벳을 이용해 점수를 계산할 수 있습니다. 점수를 계산하는 방법은 다음과 같습니다.
A = 1, B = 2, C = 3, ..., Z = 26이라고 할때, 경로에 속한 알파벳들의 합
자, 높이가 인 알파벳 트리 장난감이 있습니다. 이 알파벳 트리 장난감에 공을 넣었을 때, 나올 수 있는 점수의 최솟값과 최댓값은 얼마일지 계산해주는 프로그램을 작성해주세요!
입력
첫째 줄에 알파벳 트리 장난감의 높이 이 주어집니다.
그 후 번째 줄에는 길이가
인 알파벳 대문자로만 이루어진 문자열이 주어집니다.
출력
첫째 줄에 나올 수 있는 점수의 최솟값을, 둘째 줄에 최댓값을 출력합니다.