practivceAlgorithm 570

[SWEA][Python] 1223 계산기2

후위표기식 변형 및 연산 계산기 2지만 사실 3도 풀리게 짰다. 아직 isp, icp 손에 잘 안익음/../ def calculate(post_ex): n = len(post_ex) stack = [] for i in range(n): # 숫자면 stack if post_ex[i].isdigit(): stack.append(post_ex[i]) else: # 곱하기 나오면 두개빼서 곱하고 다시 넣음 if post_ex[i] == '*': stack.append(int(stack.pop()) * int(stack.pop())) # 더하기 나오면 두개 빼서 더하고 다시 넣음 elif post_ex[i] == '+': stack.append(int(stack.pop()) + int(stack.pop())) e..

[SWEA][Python] 5178 노드의 합

리프노드 갯수랑 value 다 줘서 구현은 어렵지 않았다. 첨엔 문제만 읽고 Segment Tree 그리라는줄.. def prefix_tree(node): if N-M < node N: return 0 else: left = prefix_tree(node*2) right = prefix_tree(node*2 + 1) tree[node] = left + right return tree[node] for test in range(1, int(input())+1): N, M, L = map(int, input().split()) tree = [0] *(N+1) for _ in range(M): node_num, value = map(int, input().split()) tree[node_num] = valu..

[SWEA][Python] 5110 수열 합치기

이거두 그냥 슬라이싱으로 배열 끼워넣기 했다.. 이거두 pass됨 for test in range(1,int(input())+1): N, M = map(int, input().split()) arr = [float('inf')] cnt = 0 for _ in range(M): a = list(map(int, input().split())) for i in range(N*cnt+1): if a[0] < arr[i]: arr[i:i] = a break cnt += 1 print(f'#{test}',end=' ') print(*arr[-11:-1][::-1]) 요건 연결리스트 소스 class Node: # 초기화 메소드 def __init__(self, data): self.data = data self.li..

[백준][Python] 3783 세제곱근

부동소수점에 대한 이해 : https://thrillfighter.tistory.com/349 Python의 부동소수점 보정 decimal 모듈 : https://docs.python.org/ko/3/library/decimal.html import decimal # 천자리까지 정확도 주기 decimal.getcontext().prec = 1000 N = int(input()) for _ in range(N): # Decimal 객체를 만듬.(float, int같은) # 자릿수 10자리까지 정확하게 입력해줌. d = decimal.Decimal(input().rstrip() + '.0000000000') pow = decimal.Decimal('1') / decimal.Decimal('3') d = de..