n개의 다른 큐브 크기를 포함하는 배열 num이 있다고 가정하고 수평으로 배치됩니다. 큐브 더미를 수직으로 만들어야 합니다. 새 큐브는 다음을 따라야 합니다 - i번째 입방체가 j번째 입방체 위에 있는 경우 j번째 한 변의 길이는 i번째 한 변의 길이보다 크거나 같아야 합니다. 수직 말뚝을 만들 때 큐브는 왼쪽이나 오른쪽에서만 가져올 수 있지만 가운데에서는 가져올 수 없습니다. 쌓을 수 있는지 없는지 확인해야 합니다. 따라서 입력이 nums =[1,2,3,7,8]과 같으면 오른쪽에서 왼쪽으로 상자를 가져와 성공적으로 쌓을 수
숫자 n이 있다고 가정합니다. 재귀 함수를 정의하여 n번째 피보나치 항을 찾아야 합니다. 따라서 입력이 n =8과 같으면 처음 몇 개의 피보나치 항이 0, 1, 1, 2, 3, 5, 8, 13, 21, 34...이므로 출력은 13이 됩니다. 이 문제를 해결하기 위해 다음 단계를 따릅니다. − solve() 함수를 정의합니다. n 소요됩니다. n <=2이면 n - 1을 반환 그렇지 않으면 해결(n - 1) + 해결(n - 2) 반환 예시 이해를 돕기 위해 다음 구현을 살펴보겠습니다. − def solve(n): &nb
숫자 n이 있다고 가정합니다. n개의 행이 있는 삼각형을 찾아야 하고 각 행에는 회문이 포함되어 있습니다. 따라서 입력이 n =5와 같으면 출력은 1121123211234321123454321 이 문제를 해결하기 위해 다음 단계를 따릅니다. − 1~n 범위의 i에 대해 디스플레이(((10^i)의 정수 부분 - 1)/9)^2 다음 줄로 이동 예시 이해를 돕기 위해 다음 구현을 살펴보겠습니다. − def solve(n):for i in range(1,n+1):print((((10**i) - 1)//9)**2)n =8sol
숫자 n이 있다고 가정합니다. 파스칼의 삼각형을 n줄까지 생성해야 합니다. 파스칼의 삼각형은 다음과 같을 것입니다 - 파스칼의 삼각형의 속성은 이전 행의 인접한 두 숫자의 합이 두 번째 행 바로 아래에 있는 숫자의 값입니다. 예를 들어, 6행의 처음 10은 5행의 4와 6의 합이고 두 번째 10은 5행의 두 숫자 6과 4의 합입니다. 따라서 입력이 n =5와 같으면 출력은 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 이 문제를 해결하기 위해 다음 단계를 따릅니다. − 0 ~ n+1 범위
n개의 다른 영어 문자가 있는 배열이 있다고 가정합니다. 또 다른 값 k가 있습니다. 균일한 분포로 k개의 다른 인덱스(1-인덱스)를 선택할 수 있습니다. 선택된 k개의 인덱스 중 적어도 하나가 문자 a를 포함할 확률을 찾아야 합니다. 따라서 입력이 문자 =[a, c, a, b, l, a, b, z] k =2인 경우 출력은 64.28%입니다. (1, 2), (1, 3)과 같은 조합이 28개 있는 것처럼 보이지만 (1,2), (1,3), (6,7)과 같은 일부 조합은 18개의 쌍이 7을 유지하므로 18/28 =0.6428. 이 문
숫자 n이 있다고 가정합니다. 우리는 n개의 행이 있는 삼각형을 인쇄해야 하며 각 행에는 i번째 행, i번의 행이 포함됩니다. 따라서 입력이 n =5와 같으면 출력은 1 22 333 4444 55555 이 문제를 해결하기 위해 다음 단계를 따릅니다. − 1~n 범위의 i에 대해 디스플레이((10^i)/9*i의 정수 부분) 다음 줄로 이동 예시 이해를 돕기 위해 다음 구현을 살펴보겠습니다. − def solve(n): for i in range(1,n+1): print((10**i)//9*i) n =
다음 연산으로 복소수 클래스를 정의하여 복소수 작업을 수행한다고 가정해 보겠습니다. - 두 개의 복소수를 더하기 위한 add() 두 개의 복소수를 빼기 위한 sub() mul() 두 개의 복소수 곱하기 div() 두 개의 복소수 나누기 mod() 복소수의 계수를 구합니다. 복소수는 (a + bi) 형식으로 표시됩니다. 우리는 두 개의 복소수를 가지고 있으며 이들에 대해 이러한 연산을 수행할 것입니다. 클래스 내에서 add(), sub(), mul() 및 div() 메서드를 오버로드하여 연산자를 사용하여 작업을 수행할 수 있습니
크기가 같은 두 개의 문자열 s와 t가 있다고 가정합니다. 우리는 대체 방식으로 s와 t의 문자를 결합해야 합니다. 따라서 s[i]를 t[i]와 연결하고 다음 문자로 이동합니다. 따라서 입력이 s =hello t =world와 같으면 출력은 hweolrllod가 됩니다. 이 문제를 해결하기 위해 다음 단계를 따릅니다. − zipped :=(s[i], t[i])와 같은 쌍을 만들기 위해 s와 t에 대해 zip 연산을 수행합니다. zipped :=각 요소가 s[i]인 목록을 만들고 t[i]를 연결 단일 문자열로 결합하여 압축된 목
문자열 s가 있다고 가정합니다. 홀수 위치에 있는 모든 요소를 짝수 위치에 있는 요소로 바꿔야 합니다. 따라서 마지막으로 요소가 쌍으로 교환되는 s의 순열을 얻습니다. 따라서 입력이 s =programming과 같으면 출력은 rpgoarmmnig가 됩니다. 이 문제를 해결하기 위해 다음 단계를 따릅니다. − s :=s의 문자로 목록 만들기 0 ~ s - 1 크기 범위의 i에 대해 2만큼 증가, do s[i], s[i+1]을 s[i+1], s[i]로 교체 s의 문자를 결합하여 전체 문자열을 만들고 반환 예시 이해를 돕
문자열 s가 있다고 가정합니다. 이 문자열을 Run length 인코딩 형식으로 압축해야 합니다. 따라서 여기서 bbbb와 같이 문자가 k번 연속으로 반복되면 문자 b가 4번 연속으로 반복되므로 인코딩된 형식은 b4가 됩니다. 단일 문자의 경우 카운트를 추가하지 않습니다. 따라서 입력이 s =abbbaaaaaccdaaab와 같으면 출력은 ab3a6c2da3b가 됩니다. 이 문제를 해결하기 위해 다음 단계를 따릅니다. − res :=빈 문자열 cnt :=1 범위 1에서 s - 1 크기의 i에 대해 s[i - 1]이 s[i]와
두 개의 문자열 s와 t가 있다고 가정합니다(둘 다 소문자 영어 문자 포함). 우리는 크기가 3인 쌍의 목록을 찾아야 합니다. 여기서 각 쌍은 (l, k) 형식입니다. 여기서 k는 문자열이고 l은 길이입니다. 이제 이 세 쌍 중 첫 번째는 이 두 문자열의 가장 긴 공통 접두사 p인 s와 t의 부분 문자열을 포함하고 s의 나머지 부분은 s이고 t의 나머지 부분은 t입니다. 따라서 최종 목록은 [(length of p, p), (length of s, s), (length of t, t)]와 같습니다. 따라서 입력이 s =scienc
문자열 s가 있다고 가정합니다. 이전에 이미 발생한 문자를 제거하고 축소된 문자열을 반환해야 합니다. 이를 해결하기 위해 하나의 정렬된 사전을 사용하여 문자의 삽입 순서를 유지합니다. 값은 해당 문자의 빈도이지만 여기서 빈도 값은 중요하지 않습니다. 사전을 구성한 후에는 키를 가져와서 결합하여 문자열을 얻을 수 있습니다. 따라서 입력이 s =cabbbaadac과 같으면 출력은 cabd가 됩니다. 이 문제를 해결하기 위해 다음 단계를 따릅니다. − d :=키가 삽입 순서에 따라 순서대로 저장되는 사전 s의 각 문자 c에 대해 다
운동선수에 대한 정보가 포함된 2차원 목록이 있다고 가정합니다. 이 정보는 계급, 나이, 키입니다. 각 행에는 다른 선수에 대한 정보가 포함되어 있습니다. 또 다른 숫자 k가 있습니다. k번째 속성을 기준으로 데이터를 정렬해야 합니다. 따라서 입력이 다음과 같으면 순위 나이 높이 1 25 190 2 35 180 3 33 185 4 26 175 5 35 180 그리고 k =1. 그러면 출력은 순위 나이 높이 1 25 190 4 26 175 3 33 185 2 35 180 5 35 180 [[1,
하나의 영숫자 문자열 s가 있다고 가정합니다. 다음 조건에 따라 정렬해야 합니다. 정렬된 모든 소문자는 대문자 앞에 놓입니다. 정렬된 모든 대문자는 숫자 앞에 놓입니다. 정렬된 모든 홀수는 정렬된 짝수보다 먼저 배치됩니다. 따라서 입력이 s =HeLlo1234와 같으면 출력은 eloHL1324가 됩니다. 이 문제를 해결하기 위해 다음 단계를 따릅니다. − f() 함수를 정의합니다. 시간이 걸립니다 코드:=0 c가 대문자이면 코드:=10^3 그렇지 않고 c가 숫자일 때 코드:=10^6 c의 ASCI
숫자 x와 또 다른 숫자 n이 있다고 가정합니다. 일부 고유 숫자의 n승의 합으로 x를 얻을 수 있는 여러 가지 방법을 찾아야 합니다. 따라서 입력이 x =100 n =2와 같으면 가능한 솔루션은 6^2 + 8^2, 10^2 및 1^2 + 3^2 + 4^2 + 5^이기 때문에 출력은 3이 됩니다. 2 + 7^2. 이 문제를 해결하기 위해 다음 단계를 따릅니다. − ans :=0 solve()라는 메서드를 정의하면 4개의 매개변수 x, n, cn 및 cs가 필요하며 초기 cs =0, cn =1에 대한 값 p :=cn^n p +
이메일 주소가 문자열이라고 가정합니다. 다음 조건에 따라 이것이 유효한지 여부를 확인해야 합니다. - 형식은 [email protected] 형식이어야 합니다. 사용자 이름에는 대문자와 소문자, 숫자, 대시 및 밑줄만 사용할 수 있습니다. 회사 이름에는 대문자와 소문자와 숫자만 사용할 수 있습니다. 도메인은 대문자와 소문자만 포함할 수 있습니다. 확장자의 최대 길이는 3입니다. 정규식을 사용하여 메일 주소를 확인할 수 있습니다. re 라이브러리를 가져와 정규식을 사용할 수 있습니다. 패턴을
nums라는 요소 목록과 값 k가 있다고 가정합니다. 우리는 최소한 k 번 이상 발생한 요소를 찾아야 합니다. 따라서 입력이 nums =[2,5,6,2,6,1,3,6,3,8,2,5,9,3,5,1] k =3과 같으면 출력은 [2, 5,6, 3]이 되십시오. 이 문제를 해결하기 위해 다음 단계를 따릅니다. − c :=숫자로 표시된 각 요소의 빈도를 포함하는 목록 res :=새 목록 c의 각 키 n에 대해 다음을 수행합니다. =k이면 res 끝에 n 삽입 반환 결과 예시 이해를 돕기 위해 다음 구현을 살펴보겠습니다. −
유리수 목록이 있다고 가정합니다. 우리는 reduce 함수를 사용하여 그들의 제품을 찾아야 합니다. reduce() 함수는 두 개의 인수가 있는 함수를 왼쪽에서 오른쪽으로 객체 목록에 누적하여 적용합니다. 따라서 입력이 분수 =[(5,3),(2,8),(6,9),(5,12),(7,2)]와 같으면 출력은 (175, 432) ) 5/3 * 2/8 * 6/9 * 5/12 * 7/2 =(5*2*6*5*7)/(3*8*9*12*2) =2100/5184 =175/432. 이 문제를 해결하기 위해 다음 단계를 따릅니다. − fracs :=새
큰 수 n이 있다고 가정합니다. 팩토리얼을 찾아야 합니다. 일부 다른 언어에서는 정수 데이터 유형의 범위를 초과할 수 있기 때문에 큰 수의 계승을 찾는 것이 매우 어렵습니다. 그러나 파이썬에서는 길이를 자동으로 감지하고 기본적으로 숫자를 더 큰 정수 형식으로 업데이트합니다. 따라서 입력이 n =50과 같으면 출력은 다음과 같습니다. 30414093201713378043612608166064768844377641568960512000000000000 이 문제를 해결하기 위해 다음 단계를 따릅니다. − 수학 라이브러리에
숫자 n이 있다고 가정합니다. 우리는 처음 n개의 피보나치 항(최대 n항까지의 피보나치 수열)의 합을 찾아야 합니다. 답이 너무 크면 결과 모듈로 10^8 + 7을 반환합니다. 따라서 입력이 n =8과 같으면 처음 몇 개의 피보나치 항이 0 + 1 + 1 +2 + 3 + 5 + 8 + 13 =33이므로 출력은 33이 됩니다. 이 문제를 해결하기 위해 다음 단계를 따릅니다. − m :=10^8+7 메모:=새 지도 solve() 함수를 정의합니다. n, m 소요됩니다. n이 메모에 있으면 반품 메모[n] memo[n] :=n