practivceAlgorithm/swexpertacademy 84

[SWEA][Python] 1225 암호생성기

1. deque로 직접회전 from collections import deque for _ in range(10): test = int(input()) arr = deque(list(map(int, input().split()))) cnt = 0 while arr[-1] > 0: arr.rotate(-1) arr[-1] -= cnt%5+1 cnt += 1 arr[-1] = 0 print(f'#{test}',*arr) 2. 포인터로 간접회전 for _ in range(10): test = int(input()) arr = list(map(int, input().split())) idx = -1 cnt = 0 while arr[idx] > 0: idx += 1 idx %= 8 arr[idx] -= cnt %..

[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..