목록전체 글 (64)
정글에서 온 개발자
코드import randomA = 0 # 구간의 최소값B = 1000 # 구간의 최대값L = 100 # 배열 최대 크기def correct_solution(numbers): answer = numbers # 정답 코드 return answerdef my_solution(numbers): answer = numbers # 내 풀이 코드 return answer def generate_random_numbers(a,b,n): return [random.randint(a,b) for _ in range(n)]def compare_solution(numbers, i=0): result1 = correct_solution(numbers) result2 = my_sol..
시도BruteForce로 비교 못함배열의 길이가 N 일 때 O(N!) 만큼 시간이 걸려 문자열을 생성해서 비교해야 한다. 생성된 문자열을 숫자로 바꾸어 비교해야하는데, 이때 숫자의 최대 길이는 1e5 * 1e3 으로 1e8 (숫자의 크기가 아니라 숫자의 길이라는데 유의) 이기 때문에 이 숫자를 2진수로 표현만 해도 약 41.52MB 를 잡아 먹는다. ( 10^(10^8) 에 밑이 2인 log를 취한 값 만큼 비트가 필요함 )가장 먼저 떠올리기 쉬운 정렬인 ‘사전식 순서(lexicographical order)’ 정렬을 해도 안 풀림[2,20,9] 을 사전식으로 정렬하면 [2,20,9] 가 나온다.사전에서는 더 짧은 숫자가 앞에 나오기 때문이다.큰 수를 만들기 위해서는 이걸 거꾸로(reverse) 해야 하..
13335번: 트럭 접근 방법 큐로 풀면 될 것 같다. 크게 2가지가 있다. 트럭이 나와야할 시간 체크하기 트럭을 큐에 넣을 때 진입하는 시간을 같이 넣는다. 트럭이 나올 때가 됐는지 시간별로 체크한다.(트럭시간 + L이 나올 시간이다.) 트럭이 이동하는 다리 시뮬레이트 하기 시간마다 실제로 트럭의 무게를 큐에 넣는다. 트럭이 들어가지 않아야할 때는 0을 넣는다. 시간마다 큐에서 pop한다. 트럭이 나와야 할 시간 체크하기 from collections import deque N,L,W = map(int,input().split()) A = deque([*map(int,input().split())]) t=0 Q=deque([]) totalWeight = 0 while A: t+=1 if(Q and t>..