forTinrange(int(input())):N=int(input())arr=list(map(int,input().split()))dp=[1]*Nforiinrange(1,N):forjinrange(i):ifarr[j]<arr[i]:dp[i]=max(dp[i],dp[j]+1)print(f'#{T+1}{max(dp)}')# dp는 쉬운듯 어렵고 어려운듯 쉽다...# LIS로 검색하면 도움이 되는 글이 많다.
forTinrange(int(input())):A,B=map(int,input().split())result=0foriinrange(int(A//B)):result+=2*(i+1)-1print(f'#{T+1}{result}')# A를 B의 길이로 나눈 정삼각형은 맨 위층 부터 2n-1개의 삼각형이 나온다.
forTinrange(int(input())):D,A,B=map(int,input().split())D=str(D)arr=[0,0]+[1]*(B-1)# 에라토스테네스의 체를 활용할껀데 어떤 수까지 검증하면 될까?# 검증해보니 모든 수는 자신의 int(root)까지만 확인하면 배수값인지 확인이 가능했다.rootB=int(B**0.5)#👈 이 아이디어를 얻기까지 오랜시간이 걸렸다.foriinrange(2,rootB+1):#👈ifarr[i]==1:#👈forjinrange(2*i,B+1,i):#👈 에라토스테네스의 체 를 활용arr[j]=0#👈result=[]foriinrange(A,B+1):ifarr[i]==1andDinstr(i):result.append(i)print(f'#{T+1}{len(result)}')
importitertoolsforTinrange(int(input())):N,K=map(int,input().split())# N: 갯수, K: 목표 합Nums=list(map(int,input().split()))count=0foriinrange(1,N+1):boxs=itertools.combinations(Nums,i)forboxinboxs:ifsum(box)==K:count+=1print(count)# 하... 라이브러리 쓰자..
D3_1491_원재의 벽 꾸미기
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
forTinrange(int(input())):N,A,B=map(int,input().split())result=[]forRinrange(1,N+1):forCinrange(1,R+1):ifR*C>N:breakelifR*C<=N:result.append(A*abs(R-C)+B*(N-R*C))print(f"#{T+1}{min(result)}")# A X lR – Cl + B X (N - R X C)에서# A X lR – Cl => 양수, B X (N - R X C) => 양수 만 가능하다.# 또 직사각형 인테리어라고해서 R != C 라고 생각했으나,,# R = C인 경우도 넣어줘야 답이 나왔다.