Bob이라는 친구가 있고 그는 자신과 게임을 하고 있다고 가정합니다. 그는 자신에게 nums라는 숫자 목록을 제공합니다. 이제 매 차례마다 Bob은 목록의 두 요소를 선택하고 선택한 숫자와 합이 같은 하나의 양의 정수로 바꿉니다. Bob은 배열의 모든 숫자가 짝수일 때 승리를 선언합니다. Bob이 승리를 선언할 수 있도록 하는 데 필요한 최소 턴 수를 찾아야 합니다. 그런 솔루션이 없으면 -1을 반환합니다. 따라서 입력이 [2, 3, 4, 9, 7, 13]과 같으면 3,9를 가져오고 12로 바꾸고 7,13을 20으로 바꿀 수 있으
book이라는 문자열 목록이 있다고 가정하고 책에 색인(0-인덱싱)을 페이지로 지정하고 page_size를 페이지로 지정하면 해당 페이지에서 단어 목록을 찾아야 합니다. 페이지의 색인이 없으면 빈 목록을 반환하기만 하면 됩니다. 따라서 입력이 book =[hello, world, programming, language, python, c++, java] page =1 page_size =3인 경우 출력은 다음과 같습니다. [언어, 파이썬, C++] 이 문제를 해결하기 위해 다음 단계를 따릅니다. − l:=페이지*페이지 크기
파이터라는 이진 목록과 보스라는 이진 목록의 또 다른 목록이 있다고 가정합니다. 전투기 목록에서 1은 전투기를 나타냅니다. 유사하게, bosses 목록 1에서 보스를 나타냅니다. 그 파이터는 보스보다 파이터가 더 많은 경우 보스의 행을 이길 수 있습니다. 패배한 보스 행이 제거된 새로운 보스 매트릭스를 반환해야 합니다. 따라서 입력이 전투기와 같은 경우 =[0,1,1] 0 1 1 0 0 0 0 0 1 0 1 1 1 1 1 그러면 출력은 0 1 1 1 1 1 이 문제를 해결하기 위해 다음 단계를 따릅니다. −
판매할 자동차의 가격 목록이 있고 예산도 k라고 가정하고 살 수 있는 자동차의 최대 수를 찾아야 합니다. 따라서 입력이 [80, 20, 10, 30, 80], k =85와 같으면 가격이 20, 10, 40인 자동차 3대를 살 수 있으므로 출력은 3이 됩니다. 이 문제를 해결하기 위해 다음 단계를 따릅니다. − 개수 :=0 정가 정렬 범위 0에서 가격 크기까지의 i에 대해 가격[i] <=k이면 k :=k-가격[i] 개수 :=개수 + 1 그렇지 않으면 루프에서 나오다 반환 횟
소문자 알파벳 문자열이 있고 오프셋 번호가 k라고 가정합니다. s에 있는 모든 문자를 알파벳을 따라 k 위치에 있는 문자로 바꿔야 합니다. 문자가 또는 z를 지나 넘칠 때 다른 면으로 감겨진다는 점을 명심해야 합니다. 따라서 입력이 hello와 같으면 k =3이면 출력은 khoor가 됩니다. 이 문제를 해결하기 위해 다음 단계를 따릅니다. − shift() 함수를 정의합니다. 시간이 걸립니다 i :=(c)의 ASCII - (a)의 ASCII 나는 :=나는 + k 나는 :=나는 모드 26 ASCII에서 문
단어 목록이 있다고 가정하고 낙타 형식으로 연결해야 합니다. 따라서 입력이 [Hello, World, Python, Programming]과 같으면 출력은 helloWorldPythonProgramming이 됩니다. 이 문제를 해결하기 위해 다음 단계를 따릅니다. − s :=빈 문자열 단어의 각 단어에 대해 - 첫 글자 단어를 대문자로 만들고 나머지는 소문자로 만들기 단어를 s로 연결 ret :=s의 첫 글자를 소문자로 변환하여 s 리턴 렛 이해를 돕기 위해 다음 구현을 살펴보겠습니다. −
셀이라고 하는 숫자 목록이 있다고 가정합니다. 이 목록은 다른 셀의 크기를 나타냅니다. 이제 각 반복에서 두 개의 가장 큰 셀과 b는 다음 규칙에 따라 상호 작용합니다. 따라서 =b이면 둘 다 죽습니다. 그렇지 않으면 두 셀이 병합되고 크기가 ((a + b) / 3)의 바닥이 됩니다. 마지막 셀의 크기를 찾거나 남은 셀이 없으면 -1을 반환해야 합니다. 따라서 입력이 [20,40,40,30]과 같으면 출력은 16이 되고 첫 번째 반복에서는 40과 40이 죽고 20과 30은 ((20+30) / 3)의 바닥이 됩니다. =50/3의 바
num이라는 숫자 목록이 있다고 가정하고 목록이 양수에서 음수 또는 음수에서 양수 기울기로 변경되는 횟수를 찾아야 합니다. 따라서 입력이 [2, 4, 10, 18, 6, 11, 13]과 같으면 10에서 방향을 변경하므로 출력은 2가 됩니다(양수에서 음수 ), 그리고 6(음수-양수)에서. 이 문제를 해결하기 위해 다음 단계를 따릅니다. − 이 문제를 해결하기 위해 다음 단계를 따릅니다. − 범위 1에서 숫자 - 1까지의 i에 대해 수행 nums[i-1] nums[i]
Python 사전을 사용하는 동안 사전의 각 요소를 고유하게 식별해야 할 수도 있습니다. 이를 위해 사전의 각 요소에 고유한 ID를 할당해야 합니다. 이 기사에서는 Python 사전에서 동일한 고유 ID가 반복되는 경우 요소에 동일한 고유 ID를 할당하는 방법을 살펴봅니다. enumerate() 및 OrderedDict.fromkeys() 사용 열거 함수는 사전의 각 요소에 카운터를 추가하여 주어진 사전을 확장합니다. 그런 다음 사전에서 동일한 카운터 값을 추출하여 ID의 중복 값을 제거하는 OrderedDict.fromkeys(
여러 번 우리는 목록의 요소를 고유하게 식별해야 합니다. 이를 위해 목록의 각 요소에 고유한 ID를 할당해야 합니다. 이는 Python에서 사용할 수 있는 서로 다른 내장 함수를 사용하는 다음 두 가지 접근 방식으로 달성할 수 있습니다. 열거 및 설정 사용 열거 함수는 각 요소에 고유한 ID를 할당합니다. 그러나 목록이 이미 중복 요소인 경우 목록을 구성하는 키 값 쌍의 사전을 만들고 set 함수를 사용하여 고유한 값을 할당해야 합니다. 예시 # Given List Alist = [5,3,3,12] print("The g
Python 목록에는 하위 목록도 포함될 수 있습니다. 하위 목록 자체는 더 큰 목록 내에 중첩된 목록입니다. 이 기사에서는 주어진 목록 내에서 고유한 하위 목록의 수를 계산하는 방법을 볼 것입니다. 카운터 사용 Counter는 Dictionary의 하위 클래스이며 요소와 해당 개수를 추적하는 데 사용됩니다. 또한 요소가 Dict 키로 저장되고 해당 개수가 dict 값으로 저장되는 정렬되지 않은 컬렉션으로 간주됩니다. 따라서 아래 예에서는 하위 목록이 있는 목록을 직접 가져옵니다. 예시 from collections import
많은 프로그램에서 사전에서 키를 가져오는 것은 이 사전에 의존하는 다른 프로그램에서 사용하는 중요한 입력입니다. 이 기사에서는 키를 목록으로 캡처하는 방법을 살펴보겠습니다. dict.keys 사용 이것은 키에 액세스하는 매우 직접적인 방법입니다. 이 방법은 내장된 방법으로 사용할 수 있습니다. 예 Adict = {1:'Sun',2:'Mon',3:'Tue',4:'Wed'} print("The given dictionary is :\n ",Adict) pri
목록의 첫 번째 요소와 마지막 요소를 가져와야 하는 상황이 있을 수 있습니다. 여기서 까다로운 부분은 목록에서 이러한 요소를 찾는 동안 목록의 길이를 추적해야 한다는 것입니다. 다음은 이를 달성하기 위해 사용할 수 있는 접근 방식입니다. 그러나 물론 모든 접근 방식에는 목록에 있는 요소의 인덱스를 사용하는 것이 포함됩니다. 색인만 사용 모든 목록에서 첫 번째 요소에는 인덱스 값 0이 할당되고 마지막 요소는 값 -1로 간주될 수 있습니다. 그래서 우리는 이 인덱스 값을 목록에 직접 적용하고 원하는 결과를 얻습니다. 예시 Alist
파이썬의 목록은 그 안에 목록을 요소로 포함할 수도 있습니다. 이러한 중첩 목록을 하위 목록이라고 합니다. 이 기사에서는 주어진 목록에서 각 하위 목록의 첫 번째 요소만 검색하는 문제를 해결할 것입니다. for 루프 사용 하위 목록에서 인덱스 0에 있는 항목을 가져오는 하위 목록을 반복하는 매우 간단한 접근 방식입니다. 이를 위해 아래와 같이 for 루프가 사용됩니다. 예시 Alist = [['Mon', 1], ['Tue', 'Wed', "Fri"], [12,3,7]]
파이썬의 목록은 그 안에 목록을 요소로 포함할 수도 있습니다. 이러한 중첩 목록을 하위 목록이라고 합니다. 이 기사에서는 주어진 목록에서 각 하위 목록의 마지막 요소만 검색하는 문제를 해결할 것입니다. for 루프 사용 하위 목록에서 인덱스 -1에 있는 항목을 가져오는 하위 목록을 반복하는 매우 간단한 접근 방식입니다. 이를 위해 아래와 같이 for 루프가 사용됩니다. 예시 Alist = [['Mon', 1], ['Tue', 'Wed', "Fri"], [12,3,7]]
파이썬의 목록은 데이터 유형이 같을 수도 있고 없을 수도 있는 []에 배치된 여러 항목입니다. 중복을 포함할 수도 있습니다. 이 기사에서는 목록에서 고유한 값만 추출하는 방법을 볼 것입니다. append() 사용 이 접근 방식에서는 먼저 새 빈 목록을 만든 다음 이 새 목록에 아직 없는 경우에만 이 새 목록에 요소를 계속 추가합니다. for 루프는 not in 조건과 함께 사용됩니다. 들어오는 요소의 존재를 확인하고 이미 존재하지 않는 경우에만 추가됩니다. 예 def catch_unique(list_in):  
문자열 s와 정수 n이 있다고 가정하고 s를 n 크기의 조각으로 나누어야 합니다. 따라서 입력이 s =abcdefghijklmn, n =4와 같으면 출력은 [abcd, efgh, ijkl,mn] 이 문제를 해결하기 위해 다음 단계를 따릅니다. − i:=0 f:=새 목록 i
도시 블록을 나타내는 고유 문자열 행렬과 방문할 블록을 포함하는 문자열의 또 다른 목록이 있다고 가정합니다. 블록 행렬[0][0]에 있는 경우 모든 블록을 순서대로 방문하는 데 필요한 총 맨해튼 거리를 찾으십시오. 따라서 입력이 다음과 같으면 Q 나 C 디 이 Z 지 지 나 블록 =[H,B,C] 그러면 h는 2블록 아래쪽(남쪽)과 1블록 오른쪽(동쪽), b는 2블록 위쪽(북쪽), c는 1블록 오른쪽(동쪽)이므로 출력은 6이 됩니다. 이 문제를 해결하기 위해 다음 단계를 따릅니다. − coords :=start 키와
양의 정수 n이 있다고 가정하고 Collatz 시퀀스의 길이를 찾아야 합니다. 우리가 알고 있듯이 Collatz 시퀀스는 n이 n =3n+ 1일 때 n =n/2일 때 순차적으로 생성됩니다. 그리고 이 시퀀스는 n =1일 때 끝납니다. 따라서 입력이 n =13과 같으면 출력은 [13, 40, 20, 10, 5, 16, 8, 4, 2, 1]이 시퀀스이므로 10이 됩니다. 이 문제를 해결하기 위해 다음 단계를 따릅니다. − num이 0과 같으면 0을 반환 길이:=1 num이 1과 같지 않으면 do num :=(num / 2) n
행렬이 있다고 가정하고 각 열을 오름차순으로 정렬해야 합니다. 따라서 입력이 다음과 같으면 11 21 31 6 6 4 1 11 8 그러면 출력은 1 6 4 6 11 8 11 21 31 이 문제를 해결하기 위해 다음 단계를 따릅니다. − R :=행렬의 행 개수, C :=행렬의 열 개수 res :=주어진 행렬과 같은 크기의 행렬이고 0으로 채움 0~C 범위의 col에 대해 values :=요소를 행렬[col]의 벡터로 사용 0~R 범위의 행에