카테고리 없음
7/10 코테 일지 (exec() 함수)
코테챌린져
2024. 7. 10. 18:21
exec() 함수
#1991 트리 순회
트리 순회 문제에서 input이 알파벳으로 들어오면 해당 알파벳을 이름으로 가지는 새로운 TreeNode()를 생성하여야 했다. 어떻게 하면 가능할까 하였는데 exec() 함수를 사용하면 가능하였다.
import sys
n = int(sys.stdin.readline().rstrip())
root_set = set()
for _ in range(n):
input = sys.stdin.readline().rstrip().split(' ')
for node in input :
if node not in root_set and node != '.':
root_set.add(node)
exec(f"{node} = TreeNode('{node}')")
if input[1] != '.' :
exec(f"{input[0]}.left = {input[1]}")
if input[2] != '.' :
exec(f"{input[0]}.right = {input[2]}")
그 외
#14425 문자열 집합
set를 잘 활용하였다.
import sys
N, M = map(int,sys.stdin.readline().rstrip().split(' '))
n_set = set()
for _ in range(N):
n_set.add(sys.stdin.readline().rstrip())
cnt = 0
for _ in range(M):
if sys.stdin.readline().rstrip() in n_set:
cnt += 1
print(cnt)
#1764 듣보
set를 잘 활용하였다.
import sys
n, m = map(int,sys.stdin.readline().rstrip().split(' '))
n_set = set()
for _ in range(n):
n_set.add(sys.stdin.readline().rstrip())
ans = []
for _ in range(m):
temp = sys.stdin.readline().rstrip()
if temp in n_set:
ans.append(temp)
print(len(ans))
for i in sorted(ans) :
print(i)