전체 글 136

점수측정

n, m = map(int, input().split())a = 0for i in range(m): b = int(input()) a += bb = (a+3*(n-m))/nw = (a-3*(n-m))/nprint(w,b)n과 m을 입력 받고 a를 0으로 지정해서 값을 더해나갈수 있게 한다m만큼 b를 입력받아야되기때문에 for문 안에다가 b를 입력받는다 여기서 a에다가b를 더해나가는 이유는 마지막의 b와 w의 평균값을 구할때 가장 큰 값과 가장 작은값을 구하기 위해서이다. for문이 끝난 지점에서는 b를 (a+3*(n-m))/n을 해서 최대 평균값을 구하고 w에는 (a-3*(n-m))/n을 해서 최소 평균값을 구하도록 한다. 그후 결과인 최소값과 최대값을 출력을 하면 된다

교란 수열

교란수열이란? 규칙 : D1 = 0, D2 = 1, D3 = 2, D4 = 29, D5 = 44 발생할 수 있는 경우1. 청강생 모두 자기꺼 채점 ➡️ D4 = 92. 청강생 한명도 자기꺼 채점 안할때 ➡️D7 = 18543. 청강생 한명이 자기꺼 채점 할때 ➡️D6 = 265 3을 곱해야 하는 이유 : 청강생이 a,b,c로 나눠져 있을때 경우가 3개가 더 곱해져야되기 때문에 3을 곱해야한다4. 청강생 두명이 각각 자기꺼 채점할때 ➡️D5 = 443을 곱해야 하는 이유 : 청강생이 a,b,c로 나눠져 있을때 경우가 3개가 더 곱해져야되기 때문에 3을 곱해야한다 9 + 1854 + 3*(44+265) = 2790

정올 양팔저울

k = int(input())weight = list(map(int, input().split()))S = sum(weight)dp = [False] * (S+1)def solve(i, w): if i == k: if 0 이 코드는 주어진 추들을 사용해 양팔 저울로 측정할 수 없는 무게의 개수를 계산하는 프로그램이다. 각 추를 올리거나 내리거나 사용하지 않는 세 가지 선택을 재귀적으로 탐색하여 만들 수 있는 모든 양의 무게 조합을 구한다. 그런 다음 1부터 추들의 합까지의 무게 중에서 측정할 수 없는 무게의 개수를 출력한다. import sysinput = sys.stdin.readlinedef f(x,y): global A if x == k: if y 0: ..

정올 반품회수

a = lambda : map(int, input().split())N = int(input())X = [*a()]T = [*a()]x = 2 * X[N - 1]for i in range(N): x = max(x, T[i] + X[i])print(x)이 코드는 두 리스트 X와 T의 각 원소를 비교하여, T[i] + X[i]와 초기값 2 * X[N - 1] 중 가장 큰 값을 구하는 프로그램이다. 먼저, 마지막 X 값에 2를 곱한 값을 초기값으로 설정한 후, 반복문을 통해 각 T[i] + X[i] 값을 비교하여 더 큰 값을 x에 저장하고, 최종적으로 그 값을 출력한다. 이 과정은 X와 T 리스트의 요소들을 순차적으로 조합하여 최적의 결과를 도출하는 방식이다.

정올 두 배

N = int(input())arr = list(map(int, input().split()))cnt = [0] * Nfor i in range(1, N - 1): temp = arr[i] while temp 이 코드는 주어진 수열에서 각 요소와 그 다음 요소를 비교하여 비트 연산을 통해 값을 두 배씩 늘려가며 몇 번의 연산이 필요한지 계산하고, 그 결과를 바탕으로 최종적으로 합을 구하는 프로그램이다. 먼저 cnt 배열을 사용해 각 요소가 그 다음 요소보다 작거나 같은 경우 비트 이동을 반복하고, rst 배열에 그 값을 누적하여 저장한다. 그런 다음, cnt와 rst 배열을 비교하여 조건에 맞는 값을 업데이트하고, 마지막에 rst 배열의 값을 합산하여 최종 결과를 출력한다.