https://assaeunji.github.io/python/2020-05-04-bj1966/ 위의 블로그 포스팅을 보고 기억하기 위해서 작성하는 글 ...! ⭐️ 프린터 큐에서 제일 먼저 출력되는 문서는 가장 큰 중요도 값을 가지는 문서이다. -> 따라서 큐의 맨 앞에 최대값이 나올 때까지 FIFO를 반복해준다. ⭐️ 같은 중요도 값을 가지는 문서는 인덱스 별로 인쇄 순서가 다르기 때문에 인덱스에 대한 정보도 기억해야 한다. ⭐️ 큐에서의 최대값을 찾고 타겟인지 비교하는 작업의 반복이라고 생각하면 된다. test_cases = int(input()) for _ in range(test_cases): n, m = list(map(int, input().split())) imp = list(map(int..
⭐️ DP에서는 반복되는 부분을 찾아서 식으로 만들어내는 것이 중요하다. ⭐️ 문제에서 주어진 것을 100% 활용해야하고 반드시 작은 것부터 시도할 수 있는 부분까지 차근차근 적어보자 1 => 1 개 1 2 => 2개 1 + 1 2 3 => 4개 1 + 1 + 1 1 + 2 2 + 1 3 4 => 7개 1 + 1 + 1 + 1 1 + 1 + 2 1 + 2 + 1 2 + 1 + 1 2 + 2 1 + 3 3 + 1 5 => 13개 1 + 1 + 1 + 1 + 1 1 + 1 + 1 + 2 1 + 1 + 2 + 1 1 + 2 + 1 + 1 2 + 1 + 1 + 1 2 + 2 + 1 2 + 1 + 2 1 + 2 + 2 1 + 1 + 3 1 + 3 + 1 3 + 1 + 1 2 + 3 3 + 2 4를 만들 수 있는 ..
n 자리 숫자가 있을 때 맨 끝의 자리에 0부터 ~ 9까지의 숫자를 놓고 가능한 오르막 수를 계산하면 맨 끝자리를 9로 놨을 때 나오는 개수가 답이 되는 것을 확인할 수 있다. 또한 이를 정리해보면 n = 1일 때는 끝자리 수에 상관없이 모두 1개로 시작하고 자리수가 늘어남에 따라 규칙성이 나타남을 확인할 수 있다. 0 1 2 3 4 5 6 7 8 9 1 1 1 1 1 1 1 1 1 1 1 2 3 4 5 6 7 8 9 10 1 3 6 10 15 21 28 36 45 55 n = int(input()) num = [1]*10 for i in range(n-1): for j in range(1, 10): num[j] += num[j-1] print(sum(num)%10007)
다른 사람들의 풀이를 보고 기억하기 위해 기록함 !! 접근 방법 다리에서 w 단위길이를 고려하고 트럭이 하나씩 빠져나가는 상황을 생각해서 자료구조 queue를 채택한다. 다리를 위한 큐에는 단위길이 w 만큼 0을 채우고 시작한다. 1. 다리에서 수를 하나 뺀다. 2. 다리에 원소가 w 미만으로 있다면 다음 트럭을 넣을 수 있는지 검사한다. 3-1. 현재 다리의 합과 다음 트럭을 더했을 때가 최대 하중 L보다 작다면 트럭을 넣어주고 3-2. 최대 하중 L을 넘는다면 0을 넣는다. 도착한 트럭 다리 위에 있는 트럭 다리를 건너야 할 트럭 시간 전체 무게 [] [0, 0] [7, 4, 5, 6] 0 0 [] [0, 7] [4, 5, 6] 1 7 [] [7, 0] [4, 5, 6] 2 7 [7] [0, 4] [..