목록Algorithm (23)
isPowerfulBlog
뭔가 속도 차가 확실히 나니까 작고 소중한 코드 고치기 재밌다...히히... 4년 전 코드 import sysimport collectionsinput = sys.stdin.readlineN = int(input())deque = collections.deque([i for i in range(1, N+1)])while len(deque) > 1: deque.popleft() deque.rotate(-1)print(deque[0]) (good) sys.stdin 써서 입력 관리(bad) rotate 저건 왜 쓴거 굳이 -> 모든 요소를 한 칸씩 이동시킴 (오버스펙;;:)개선 코드from collections import dequeimport sysinput = sys.stdin.readline..
2년 전 코드from collections import dequeimport sysinput = sys.stdin.readlinek = int(input())stack = deque([])for _ in range(k): tmp = int(input()) if tmp != 0: stack.append(tmp) else: stack.pop()print(sum(stack))(good) 대체적으로 괜찮음!개선 코드from collections import dequeimport sysinput = sys.stdin.readlineif __name__ == "__main__": k = int(input()) stack = deque([]) for _ in ..
import sysinput = sys.stdin.readlinedef binary_search(arr, target, start, end): while start target: end = mid - 1 else: start = mid + 1 return 0if __name__ == "__main__": n = int(input()) n_list = sorted(list(map(int, input().split()))) m = int(input()) m_list = list(map(int, input().split())) for m_item in m_list: if m_item > n_list[-1] ..
2년 전 코드import sysinput = sys.stdin.readlineN = int(input())s = []def command(com_list, stack): # push if len(com_list) > 1: if com_list[0] == 'push': stack.append(int(com_list[1])) # top, size, empty, pop else: if com_list[0] == 'pop': if stack: print(stack.pop()) else: print(-1) elif com_list[0] == '..
4년 전 코드T = int(input())for i in range(T): string = input() num1 = 0 num2 = 0 for j in string: if num2 > num1: break else: if j == "(": num1 += 1 elif j == ")": num2 += 1 if num1 == num2: print("YES") else: print("NO")(good) 단순하게 해결(bad) 신뢰성 떨어지는 코드 개선 코드from collections import dequeimport..
처음부터 다시 공부하는 알고리즘 / 자료구조.... 2년 전 코드from collections import dequeimport sysinput = sys.stdin.readlineN = int(input())q = deque([])def command(com_list, queue): # push if len(com_list) > 1: if com_list[0] == 'push': queue.append(int(com_list[1])) # size, empty, pop, front, back else: if com_list[0] == 'pop': if queue: print(queue.pop..
오랜만에 백준 풀이>, 1: for i in range(1, close_month): close += MONTH[i] close += close_day if open START: # 3월 1일, 11월 30일에 걸쳐지거나 포함되는 flower인지 체크 flowers.append((open, close)) # open이 빠르고 close가 느린 순서로 정렬 flowers = sorted(flowers, key=lambda x:x[1], reverse=True) flowers = sorted(flowers, key=lambda x:x[0]) # print(flowers) cnt = 0 cur_start = START cur_end = START for flower in flowers: # print(flow..
스택 (Stack) 후입선출(LIFO, Last In First Out) 사용 리스트로 구현 # define stack stack = [] # add stack.append(item) # pop (가장 마지막에 in된 item return하며 stack에서 제거) stack.pop()큐 (Queue) 선입선출(FIFO, First In First Out) 사용 collections 모듈의 deque 사용하여 구현 deque 양방향 연결 리스트로 구성 # import library from collections import deque # define queue queue = deque() # add queue.append(item) # add left queue.appendleft(item) # inser..