이 기사에서는 ldexp() 함수를 사용하는 방법을 살펴보겠습니다. 이것은 수학 라이브러리의 방법 중 하나입니다. ldexp(first, second) 함수는 양수 또는 음수 중 두 개의 유효한 숫자를 취해 first * (2 ** second)의 결과를 반환합니다. 몇 가지 예를 살펴보겠습니다. 예 # ldexpprint(math.ldexp(1, 4))print(math.ldexp(5, -4))print(math.ldexp(-3, -1)) 위의 코드를 실행하면 다음과 같은 결과를 얻을 수 있습니다. 출력 16.00.3125-1
이 기사에서는 목록에서 요소의 마지막 항목을 찾는 다양한 방법을 볼 것입니다. 주어진 목록을 반대로 하여 요소의 마지막 항목을 찾는 방법을 살펴보겠습니다. 아래 단계에 따라 코드를 작성하세요. 목록을 초기화합니다. 역방향 방법을 사용하여 목록을 뒤집습니다. 인덱스 방법을 사용하여 요소의 인덱스를 찾습니다. 요소의 실제 인덱스는 len(list) - 인덱스 - 1입니다. 최종 색인을 인쇄합니다. 예시 코드를 봅시다. # initializing the list words = ['eat', 'sleep'
이 기사에서는 주어진 숫자 목록에서 가능한 가장 큰 숫자를 찾는 방법을 배울 것입니다. 우리는 문제를 해결하기 위해 두 가지 다른 방법을 보게 될 것입니다. 문제를 해결하려면 아래 단계를 따르세요. 순열 방법을 위한 itertools 모듈을 가져옵니다. 숫자와 빈 목록으로 목록을 초기화합니다. 목록의 순열을 반복합니다. 모든 조합을 결합하고 결과를 빈 목록에 추가합니다. max 메소드와 키를 int로 사용하여 결과에서 최대 수를 찾습니다. 문자열을 정수로 변환하여 출력합니다. 예시 코드를 봅시다. # importing th
이 기사에서는 유니코드 목록 요소를 결합하는 방법을 배울 것입니다. 아래 단계에 따라 코드를 작성하세요. 목록을 초기화합니다. map 및 string.encode 메소드를 사용하여 모든 요소를 유니코드로 변환합니다. 디코드 방법을 사용하여 인코딩된 각 문자열을 변환합니다. 결합 방법을 사용하여 문자열을 결합합니다. 결과를 인쇄합니다. 예시 # initializing the list strings = ['Tutorialspoint', 'is a popular', 'site', '
이 기사에서는 숫자가 아닌 인접한 단어를 목록에서 결합하는 방법을 배울 것입니다. 문제를 해결하려면 아래 단계를 따르세요. 목록을 초기화합니다. isalpha 메소드를 사용하여 숫자가 아닌 단어를 찾습니다. 4join 방식으로 단어를 연결합니다. isdigit 메서드를 사용하여 끝에 있는 모든 숫자를 추가합니다. 결과를 인쇄합니다. 예시 # initialzing the list strings = ['Tutorials', '56', '45', 'point', '1
이 글에서는 리스트의 튜플 요소를 결합하는 방법을 배울 것입니다. 조인 및 매핑 방법을 사용하는 것은 간단합니다. 아래 단계에 따라 작업을 완료하세요. 문자열이 포함된 튜플로 목록을 초기화합니다. 튜플을 인수로 취하고 문자열을 반환하는 join_tuple_string이라는 함수를 작성하세요. map(join_tuple_string, list) 메서드를 사용하여 목록에 있는 튜플을 결합합니다. 결과를 목록으로 변환합니다. 결과를 인쇄합니다. 예 # initializing the list with tuples string_tuple
이 기사에서는 두 문자열을 다른 방식으로 교차하는 방법을 배울 것입니다. 문제를 해결하려면 아래 단계를 따르세요. 두 개의 문자열과 빈 문자열을 초기화합니다. 첫 번째 문자열을 반복하고 현재 문자가 두 번째 문자열에도 있고 새 문자열에는 없는 경우 새 문자열에 현재 문자를 추가합니다. 결과를 인쇄합니다. 예시 # stringstring_1 초기화 =tutorialspointstring_2 =tutresult =# 두 문자열에서 공통 문자 찾기for string_1의 char:string_2의 char이고 결과의 char가 아닌
이 기사에서는 여러 목록이 포함된 두 목록을 서로 다른 방식으로 교차하는 방법을 살펴보겠습니다. 전통적인 방식으로 시작합시다. 문제를 해결하려면 아래 단계를 따르세요. 여러 목록으로 두 목록 초기화 첫 번째 목록을 반복하고 두 번째 목록에도 있는 경우 새 목록에 현재 항목을 추가합니다. 결과를 인쇄합니다. 예시 # initializing the lists list_1 = [[1, 2], [3, 4], [5, 6]] list_2 = [[3, 4]] # finding the common items from both lists r
이 기사에서는 키를 사용하여 두 사전을 교차하는 방법을 배울 것입니다. 공통 키를 사용하여 새 사전을 만들어야 합니다. 예를 들어 보겠습니다. Input: dict_1 = {'A': 1, 'B': 2, 'C': 3} dict_2 = {'A': 1, 'C': 4, 'D': 5} Output: {'A': 1, 'C': 3} 우리는 문제를 풀기 위해 사전 이해력을 사용할 것입니다. 아래 단계에 따라 코드를 작성하세요.
이 기사에서는 순서를 유지하면서 정렬된 목록에 항목을 삽입하는 방법을 배울 것입니다. 파이썬에는 목록의 적절한 위치에 모든 요소를 삽입하는 데 도움이 되는 bisect라는 내장 모듈이 있습니다. 아래 단계에 따라 코드를 작성하세요. 모듈 이등분을 가져옵니다. 삽입해야 하는 목록 및 요소 초기화 bisect 모듈에는 목록의 적절한 위치에 요소를 삽입하는 insort라는 메서드가 있습니다. 메소드를 사용하여 요소를 삽입합니다. 목록을 인쇄합니다. 예시 # importing the module import bisect # in
각 로그에 고유한 ID와 타임스탬프가 포함된 일부 로그가 있다고 가정합니다. Timestamp는 Year:Month:Day:Hour:Minute:Second 형식의 문자열입니다(예:2019:01:01:23:59:59). 모든 도메인은 0으로 채워진 십진수입니다. 우리는 다음 기능을 구현하기 위해 로그 저장 시스템을 설계해야 합니다 - void Put(int id, string timestamp):로그의 고유 ID와 타임스탬프를 가져와 스토리지 시스템에 저장합니다. int[] Retrieve(String start, St
grid[i][j]의 각 값이 그곳에 위치한 건물의 높이를 나타내는 grid라는 2차원 배열이 있다고 가정합니다. 우리는 건물의 높이를 얼마든지 늘릴 수 있습니다. 높이 0도 건물로 간주됩니다. 결국 그리드의 네 방향 모두에서 볼 때 스카이라인은 원래 그리드의 스카이라인과 같아야 합니다. 도시의 스카이라인은 멀리서 볼 때 모든 건물이 형성하는 직사각형의 외부 윤곽이기 때문입니다. 따라서 건물의 높이를 높일 수 있는 최대 합계를 찾아야 합니다. 따라서 입력이 다음과 같으면 3 0 8 4 2 4 5 7 9 2 3 6 0 3 1
이진 검색 트리를 직렬화 및 역직렬화하는 알고리즘을 설계한다고 가정합니다. 직렬화는 파일이나 메모리 버퍼에 저장하거나 네트워크 연결 링크를 통해 전송할 수 있도록 무언가(데이터 구조 또는 개체)를 비트 시퀀스로 변환하는 프로세스입니다. 나중에 재구성할 수 있으며 이 프로세스는 직렬화 해제입니다. 따라서 입력이 [5,2,9,1,3,7]과 같으면 출력은 직렬화된 출력 5.2.9.1.3.7.N.N.N.N.N.N.N 직렬화된 출력이 됩니다. 1, 2, 3, 5, 7, 9, (중위 순회) 이 문제를 해결하기 위해 다음 단계를 따릅니다
캠퍼스를 나타내는 2D 그리드가 있고 N명의 작업자와 M개의 자전거가 있다고 가정합니다. 값은 N <=M입니다. 이제 각 작업자와 자전거는 이 그리드에서 2D 좌표에 있습니다. 따라서 각 작업자에게 하나의 고유한 자전거를 할당하여 각 작업자와 할당된 자전거 간의 맨해튼 거리의 합이 최소가 되도록 하려는 경우입니다. 두 점 p1과 p2 사이의 맨해튼 거리는 (p1, p2) =|p1.x - p2.x| + |p1.y - p2.y|. 우리는 각 작업자와 할당된 자전거 사이의 맨해튼 거리의 가능한 최소 합을 찾아야 합니다. 따라서 입력이
2D 이진 행렬이 있다고 가정합니다. 주어진 행렬의 모든 행이나 열에 대해 모든 비트를 뒤집을 수 있습니다. 이러한 연산을 얼마든지 수행할 수 있고 각 행을 이진수로 취급한다면 이 숫자로 만들 수 있는 가장 큰 합을 찾아야 합니다. 따라서 입력이 다음과 같으면 0 1 0 0 0 1 그러면 출력은 11이 됩니다. 두 행을 모두 뒤집은 것처럼 101과 110을 얻으면 합계는 5 + 6 =11입니다. 이 문제를 해결하기 위해 다음 단계를 따릅니다. − 행렬 r에 대해 다음을 수행합니다. r[0]이 0과 같으면 0에서 r까
친구 목록이 있다고 가정합니다. 여기서 친구[i]는 i가 친구인 사람들의 목록입니다. 우정의 연결은 양방향입니다. 그리고 각 사람은 자신과 친구이며 두 사람은 서로를 연결하는 상호 친구의 길이 있는 한 친구 그룹입니다. 총 친구 그룹 수를 찾아야 합니다. 따라서 입력이 friend =[[0, 1, 5],[1, 0],[2],[3, 4],[4, 3],[5, 0]]인 경우 출력은 세 친구 그룹은 아래와 같으므로 3이 됩니다. - 이 문제를 해결하기 위해 다음 단계를 따릅니다. − 노드 :=친구의 크기 visited :=노드와 크
nums라는 숫자 목록이 있고 현재 nums[0]에 있다고 가정합니다. 각 단계에서 현재 인덱스 i에서 i + 1 또는 i - 1 또는 j로 이동할 수 있습니다. 여기서 nums[i] ==nums[j]입니다. 최종 색인에 도달하는 데 필요한 최소 단계 수를 찾아야 합니다. 따라서 입력이 nums =[4, 8, 8, 5, 4, 6, 5]와 같은 경우 출력은 3이 됩니다. 값이 둘 다 4이므로 인덱스 0에서 인덱스 4로 점프할 수 있기 때문입니다. 그리고 그런 다음 인덱스 3으로 다시 이동합니다. 마지막으로 두 값이 모두 5이므로 인
정렬되고 분리된 간격 목록과 간격을 나타내는 또 다른 목록 절단이 있다고 가정합니다. 컷 간격과 교차하는 간격의 모든 부분을 삭제하고 새 목록을 반환해야 합니다. 따라서 입력이 간격 =[[2, 11],[13, 31],[41, 61]] cut =[8, 46]인 경우 출력은 [[2, 8], [46 , 61]] 이 문제를 해결하기 위해 다음 단계를 따릅니다. − cut_start, cut_end :=자르기 ans :=새 목록 시작할 때마다 간격으로 끝내고 cut_start 및 start의 최대값이 end 및 cut_end의 최소값인
각 목록이 간격 [시작, 끝](포함)을 나타내는 간격 목록이 있다고 가정합니다. 우리는 그것이 다루는 총 고유 지속 시간을 찾아야 합니다. 따라서 입력이 간격 =[[2, 11],[13, 31],[41, 61]]과 같으면 총 고유 적용 거리가 (11 - 2 + 1)이므로 출력은 50이 됩니다. =10 다음 (31 - 13 + 1) =19 및 (61 - 41 + 1) =21이므로 합계는 50입니다. 이 문제를 해결하기 위해 다음 단계를 따릅니다. − 간격 목록이 비어 있으면 0을 반환 목록 간격 정렬 [시작, 종료] :=간격[
닫힌 간격 목록과 다른 간격 목록이 있다고 가정합니다. 개별적으로 각 목록은 겹치지 않으며 내림차순으로 정렬됩니다. 내림차순으로 정렬된 두 구간의 겹침을 찾아야 합니다. 따라서 입력이 inv1 =[[50, 100],[190, 270],[310, 330]] inv2 =[[40, 120],[180, 190]]과 같으면 출력은 [ [50, 100], [190, 190]] 이 문제를 해결하기 위해 다음 단계를 따릅니다. − ans :=새 목록 i :=0, j :=0 i