티스토리 뷰
문제풀이
특정 단어를 트리 형태로 구성한 것을 in-order 형식으로 순회하여 원래 단어를 알아내는 문제다.
[제약사항]
총 10개의 테스트 케이스가 주어지며, 총 노드의 개수는 100개를 넘어가지 않는다.
트리는 완전 이진 트리 형식으로 주어지며, 노드당 하나의 알파벳만 저장할 수 있다.
노드가 주어지는 순서는 위 그림과 같은 숫자 번호대로 주어진다.
트리가 갖는 정점의 총 수를 N이라 할 때, 트리가 완전 이진 트리 형식이기 때문에 N/2번 이하인 정점들만 자식을 가진다.
정점수가 짝수개인 경우에 N/2번째 정점은 왼쪽 그림에서 보이는 것처럼 왼쪽 자식만 가지고 있고, 홀수개인 경우에는 오른쪽 그림과 같이 왼쪽, 오른쪽 자식 모두 가지고 있다.
중위 순회는 왼쪽 서브 트리, 노드, 오른쪽 서브 트리 순으로 방문한다.
간단하게 재귀로 구현할 수 있다.
코드
C++ 코드
Java 코드
'Problem Solving > SWEA' 카테고리의 다른 글
[SWEA 1233] 사칙연산 유효성 검사 C++ (0) | 2021.08.02 |
---|---|
[SWEA 1232] 사칙연산 C++ (0) | 2021.08.02 |
[SWEA 1238] Contact C++ (2) | 2021.07.29 |
[SWEA 1226] 미로1 C++/Java (0) | 2021.07.29 |
[SWEA 1225] 암호생성기 C++/Java (0) | 2021.07.29 |
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- algorithm
- programmers
- Java
- 자바
- 트리
- C++
- SW Expert Academy
- 투 포인터
- 구현
- Kotlin
- BFS
- 위상 정렬
- 재귀
- 스택
- 큐
- 브루트포스
- 두 포인터
- Two Pointer
- 알고리즘
- BOJ
- 그래프
- SWEA
- 문자열
- dfs
- 프로그래머스
- 분할 정복
- 이분 탐색
- 백준
- 정렬
- 배열
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
글 보관함