Today Sangmin Learned
article thumbnail
728x90

링크

https://www.acmicpc.net/problem/14725

난이도(solved.ac 참고)

골드2

풀이

딕셔너리 선언 후 값을 받아서 맨 앞의 숫자는 빼준 뒤에 차례차례 트리 형태처럼 계층을 가지게끔 add 함수를 재귀적으로 반복하면서 넣어준다.

3
2 B A
4 A B C D
2 A C

이 예시를 보게 되면 딕셔너리에 크게 B와 A가 들어가게 되고, A안에 다시 B, C, D 순으로 딕셔너리가 들어가며 다른 가지로 C가 들어가게 된다.

이 형태가 되는 것이다. 여기서 각각은 모두 딕셔너리이며 이렇게 add 함수를 통해 이러한 계층 구조를 완성시킨다. 왼쪽 가지를 보면 A의 value는 B와 C이고(모두 딕셔너리), B의 value는 C(딕셔너리), C의 value는 D(딕셔너리)이다. 마지막으로 D의 value는 비어있는 딕셔너리가 된다.

 

이렇게 계층 형태를 완성한 뒤 printTree 함수를 실행시킨다. 여기서 leng은 계층의 깊이이다. leng의 길이만큼 '--' 가 반복되게 하기 위해 처음 루트값에 대해서는 해당하는 알파벳만 출력하게 하였다. 그리고 마지막으로, 뽑힌 값에 대해 다시 leng을 1 더한 상태로 printTree를 실행시켜서 계층구조가 '--'의 갯수만큼 출력되게 하였다. 그에 따라

A (뿌리)
--B (1차계층)
----C (2차계층)
------D (3차계층)
----------------------여기서 재귀함수 실행 종료, 그 다음 인자에 대한 for문 시작
--C (다시 1차계층)

이러한 형태가 완성이 되는 것이다.

profile

Today Sangmin Learned

@steadily-worked

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!