소스 코드
def dfs(idx):
global res
# 길이가 4인 경우(자식이 둘인 경우)
if len(node[idx]) == 4:
# 왼쪽 -> 정점 -> 오른쪽 순으로 확인
dfs(int(node[idx][2]))
res += node[idx][1]
dfs(int(node[idx][3]))
# 길이가 3인 경우(자식이 하나인 경우)
elif len(node[idx]) == 3:
dfs(int(node[idx][2]))
res += node[idx][1]
# 자식이 없는 경우
else:
res += node[idx][1]
return
for tc in range(1,11):
n = int(input())
# 정점번호는 1부터 시작이기 때문에 앞에 0추가해서 index값 통일
node = [[0]]+[list(map(str,input().split())) for _ in range(n)]
res = ''
# 정점번호
dfs(1)
print('#{} {}'.format(tc,res))
해결 방법
1. 진행 순서는 D B E A F C G
2. 가장 왼쪽(D) -> 정점(B) -> 오른쪽(E) -> 정점(A) -> 가장 왼쪽(F) -> 정점(C) -> 오른쪽(G)
3. 이런 순서대로 노드에 적힌 알파벳 읽어내면 됨
느낀 점
ps. 개인적인 코드와 코드를 작성의 이유를 적은 것입니다.
오류나 적절치 않은 문법이 존재할 수 있으며, 다른 분들께는 굉장히 비효율적인 방법으로 여겨질 수 있습니다.
혹시 개선 사항, 오류 및 문제에 대한 수정 사항 등을 댓글로 남겨주신다면 감사한 마음으로 배우고 수정하겠습니다.
'코딩 문제해결 > 문제 풀이.SWEA' 카테고리의 다른 글
[SWEA 코딩] 가장 빠른 문자열 타이핑 - PYTHON #3143 (0) | 2021.03.11 |
---|---|
[SWEA 코딩] S/W 문제해결 기본 사칙연산 - PYTHON #1232 (0) | 2021.03.09 |
[SWEA 코딩] S/W 문제해결 기본 미로1 - PYTHON #1226 (0) | 2021.03.05 |
[SWEA 코딩] S/W 문제해결 기본 길찾기 - PYTHON #1219 (0) | 2021.03.05 |
[SWEA 코딩] 태혁이의 사랑은 타이밍 - PYTHON #4299 (0) | 2021.03.04 |