본문 바로가기
728x90

자료구조&알고리즘/알고리즘3

알고리즘 풀이용 (파이썬) 1. 입출력 빠르게 import sys input=sys.stdin.readline 2. 이중 배열 이상 정렬 arr.sort(key=lambda x:(x[0],x[2])) 정렬할 n 번째 칸을 x:에 넣음 (순서대로) 3. [[0, 0], [0, 0], [0, 0]] 같이 배열 초기화 arr=[[0,0,0] for _ in range(n)] 4. 이진탐색 def binary_search(target): start=0 end=len(arr2) while start 0: a, b = b, a % b return a def choiso(a,b): return a * b // choidae(a, b) 2022. 6. 15.
백준 시간 최적화 *** 9020번 num = int(input()) def sosu(n): if n==1: return 0 for j in range (2,n): if (n %j)==0: return 0 return 1 arr=[] for i in range(2,10000): if sosu(i): arr.append(i) while(num): a = int(input()) for i in range(a//2,1,-1): if i in arr and (a-i) in arr: print(i,a-i) break num-=1 이게 내 코드이며 from sys import stdin input = stdin.readline T = int(input()) answer = "" result = [False, False, True] .. 2022. 6. 1.
Dynamic programming (동적 프로그래밍) 다이나믹 프로그래밍이란? -> 한번에 해결하기 힘든 문제의 경우 작은 여러개의 문제로 나누어 해결하는 것. 나눠진 작은 문제들은 서로 중복될 수 있는데 중복되는 문제를 매번 계산하지 않고 처음에만 계산 후 결과 값을 저장해 놓고 두번째 부턴 결과 값을 불러오는 방법을 다이나믹 프로그래밍이라 합니다. 주로 재귀함수를 사용하는 문제나 분할정복 문제에 적용 됩니다. //중복되는 값이 많기 때문 백준 문제 : 1463, 11726, 11727, 9095, 10844, 11057, 2193, 9465, 2156, 11053, 11055, 11722, 11054, 1912, 2579, 1699, 2133, 9461, 2225, 2011, 11052 2020. 12. 23.
728x90