크기가 n인 정사각형이 제공된다고 가정합니다. n 크기의 정사각형은 n2개의 작은 정사각형으로 더 나뉩니다. 작은 사각형은 단위 크기이며 사각형 중 하나는 고유한 색상으로 채색됩니다. 이제 더 큰 정사각형을 두 개의 동일한 부분으로 자르면 절단선이 고유한 색상의 작은 정사각형과 공통점이 없도록 절단해야 합니다. 새로 자른 두 조각이 서로의 거울상이라는 사실도 고려해야 합니다. 따라서 주어진 조건에서 그런 정사각형을 자르는 것이 가능한지 알아내야 합니다. 우리는 n의 값과 더 큰 사각형에서 색깔이 있는 사각형의 위치를 가지고 있
정수를 포함하는 배열 input_list가 제공된다고 가정합니다. 우리에게 주어진 문제는 주어진 배열을 두 개의 반으로 나눌 수 있는지 확인하는 것입니다. 여기서 두 반의 합은 숫자 n과 같습니다. 번호 n은 미리 제공됩니다. 따라서 입력이 input_list=[9,2,5,6], n =0과 같으면 출력은 가능이 됩니다. 이 문제를 해결하기 위해 다음 단계를 따릅니다. − list_total :=input_list 값의 합 (list_total - n) mod 2가 1과 같으면 불가능 반환 val :=(list_total -
정수 요소를 포함하는 배열이 제공된다고 가정합니다. 한 번의 스왑 작업만 수행할 수 있는 경우 배열의 값을 내림차순으로 정렬할 수 있는지 확인해야 합니다. 가능하면 가능하다고 말하고 그렇지 않으면 불가능합니다. 따라서 입력이 input_list =[7, 8, 12, 10, 11, 9]와 같으면 출력은 Can be done이 됩니다. 이 문제를 해결하기 위해 다음 단계를 따릅니다. − temp_list :=list input_list의 복사본 temp_list 목록 정렬 swap_count :=0 0에서 input_list의 크
num이라는 숫자 배열이 있다고 가정하면 중복 요소가 있을 수 있습니다. 연속된 숫자의 집합인지 확인해야 합니다. 따라서 입력이 nums =[6, 8, 8, 3, 3, 3, 5, 4, 4, 7]과 같으면 요소가 3, 4, 5, 6, 7이므로 출력은 true가 됩니다. , 8. 이 문제를 해결하기 위해 다음 단계를 따릅니다. − 목록 번호 정렬 범위 1에서 숫자 크기 - 1까지의 i에 대해 1이면 거짓을 반환 참 반환 이해를 돕기 위해 다음 구현을 살펴보겠습니다. − 예 def solve(nums):
num이라는 숫자 배열이 있다고 가정합니다. 연속된 값이 포함되어 있는지 확인해야 합니다. 따라서 입력이 nums =[6, 8, 3, 5, 4, 7]과 같으면 요소가 3, 4, 5, 6, 7, 8이므로 출력은 true가 됩니다. 이 문제를 해결하기 위해 다음 단계를 따릅니다. − 숫자의 크기가 1보다 작으면 거짓을 반환 min_val :=최소값, max_val :=최대값 (max_val - min_val + 1)이 nums의 크기와 같으면 0~숫자 크기 범위의 i에 대해 nums[i] <0이면 j:=-nums[i] - m
nums라고 하는 정렬되지 않은 숫자의 배열이 있다고 가정합니다. 연속된 값을 포함하는지 여부를 확인해야 하며 음수도 지원해야 합니다. 따라서 입력이 nums =[-3, 5, 1, -2, -1, 0, 2, 4, 3]과 같으면 요소가 3, 4, 5, 6이므로 출력은 참이 됩니다. 7, 8. 이 문제를 해결하기 위해 다음 단계를 따릅니다. − 크기 :=숫자 크기 init_term :=inf 0~크기 범위의 i에 대해 nums[i]
nums라는 숫자 목록과 양수 값 K가 있다고 가정합니다. nums −에 대해 이 세 가지 연산 중 하나를 수행할 수 있습니다. 하나의 숫자를 음수로 만듭니다. 숫자의 인덱스(색인 1부터 시작)를 숫자 자체에 추가 숫자 자체에서 숫자 인덱스를 뺍니다. 마지막으로 이러한 연산을 각 요소에 대해 한 번만 수행하여 주어진 배열이 배열의 합이 k가 될 때 변환될 수 있는지 확인해야 합니다. 따라서 입력이 nums =[1,2,3,7] k =8과 같으면 2와 3에서 인덱스 2와 3을 빼서 [1, 0, 0, 7]이므로 이제 합은 8 =k
숫자 n이 있다고 가정합니다. n의 이진 표현이 회문인지 여부를 확인해야 합니다. 따라서 입력이 n =9와 같으면 9의 이진 표현이 회문인 1001이므로 출력은 True가 됩니다. 이 문제를 해결하기 위해 다음 단계를 따릅니다. − ans :=0 0일 때 수행 ans :=ans * 2 숫자가 홀수이면 ans :=XOR 1 숫자 :=숫자 / 2 반환 이해를 돕기 위해 다음 구현을 살펴보겠습니다. − 예시 def reverse_binary(num) : ans = 0 wh
두 개의 숫자 x와 y가 있다고 가정하면 x와 y의 이진 표현이 서로의 아나그램인지 여부를 확인해야 합니다. 따라서 입력이 x =9 y =12와 같으면 9의 이진 표현이 1001이고 12의 이진 표현이 1100이므로 출력은 True가 됩니다. 따라서 이 둘은 서로의 아나그램입니다. 이 문제를 해결하기 위해 다음 단계를 따릅니다. − x와 y의 1의 개수가 같으면 참 반환 거짓을 반환 이해를 돕기 위해 다음 구현을 살펴보겠습니다. − 예시 def set_bit_count(num) : cnt = 0
임의의 숫자의 이진 표현을 나타내는 배열 n이 있다고 가정합니다. Deterministic Finite Automata DFA를 사용하여 이진 표현이 3으로 나눌 수 있는지 여부를 확인해야 합니다. 따라서 입력이 n =[1, 1, 0, 0](12의 이진법)과 같으면 출력은 True가 됩니다. 이를 해결하기 위해 아래와 같이 DFA를 구성할 수 있습니다. - 접근 방식은 숫자가 3으로 나누어 떨어지면 나머지는 0이 되고 그렇지 않으면 나머지는 1 또는 2가 될 때 간단합니다. 이 세 나머지에는 세 가지 상태가 있습니다. 나머
두 개의 숫자 x와 y와 주어진 범위(왼쪽, 오른쪽)가 있다고 가정합니다. 주어진 두 숫자에서 왼쪽에서 오른쪽으로 범위의 모든 비트가 서로의 보수인지 여부를 확인해야 합니다. 오른쪽에서 왼쪽으로, 따라서 최하위 비트가 첫 번째 위치에 있는 것으로 간주된다는 점을 명심해야 합니다. 따라서 입력이 x =41 y =54 왼쪽 =2 오른쪽 =5와 같으면 41 및 54의 이진 표현이 101001 및 110110이므로 출력은 True가 됩니다. x 및 y의 범위 2에서 5까지의 비트 서로 보완적인 1001과 0110입니다. 이 문제를 해결
양수 n이 있다고 가정하면 주어진 숫자 n의 비트 패턴에서 연속 1의 수가 왼쪽에서 오른쪽으로 증가하는지 여부를 확인해야 합니다. 따라서 입력이 n =1775와 같으면 n의 이진 표현이 11011101111이므로 출력은 True가 되므로 연속 1의 수는 [2, 3, 4]이며 증가합니다. 이 문제를 해결하기 위해 다음 단계를 따릅니다. − bits_pattern :=n의 새 비트 목록 bit_count :=bits_pattern의 크기 p_cnt :=0, c_cnt :=0 i :=0 내가
num이라는 숫자 배열이 있다고 가정합니다. 비트 AND가 2의 거듭제곱인 숫자의 하위 집합이 있는지 확인해야 합니다. 따라서 입력이 nums =[22, 25, 9]와 같으면 출력은 True가 됩니다. 하위 집합 {22, 9}인 이진 형식은 {10110, 1001} 이 두 가지의 AND는 10000 =16입니다. 이는 2의 거듭제곱입니다. 이 문제를 해결하기 위해 다음 단계를 따릅니다. − MAX :=max에 32비트 숫자가 있음을 고려하면 32 solve() 함수를 정의합니다. 시간이 많이 걸립니다 숫자의 크기가 1이면 n
소문자 문자열이 있다고 가정합니다. 우리는 문자열을 중간에서 분할할 수 있는지 확인해야 합니다. 그러면 두 쪽 사이에 최소한 한 문자 차이가 있는 두 개의 반쪽이 제공됩니다. 다른 문자 또는 각 문자의 빈도가 다를 수 있습니다. 문자열이 홀수 길이의 문자열이면 중간 요소를 무시하고 나머지 요소를 확인하십시오. 따라서 입력이 s =helloohekk와 같으면 출력은 helloohekk로 True이므로 왼쪽 부분은 hello 오른쪽 부분은 ohekk 왼쪽과 오른쪽이 다릅니다. 이 문제를 해결하기 위해 다음 단계를 따릅니다. − l
문자열 s가 있다고 가정하면 주어진 문자열의 문자를 섞어 회문을 만들 수 있는지 여부를 확인해야 합니다. 따라서 입력이 s =raaecrc와 같으면 회문인 racecar로 재정렬할 수 있으므로 출력은 True가 됩니다. 이 문제를 해결하기 위해 다음 단계를 따릅니다. − freq :=s에 모든 문자와 주파수를 저장하는 맵 홀수_카운트:=0 freq의 모든 값 목록에 있는 각 요소 i에 대해 do 내가 홀수이면 odd_count :=odd_count + 1 1이면 거짓을 반환 참 반환 이해를 돕기 위해 다음 구
두 개의 문자열 s와 t가 있다고 가정하고 s의 문자를 교환하여 t를 생성할 수 있는지 확인해야 합니다. 따라서 입력이 s =worldlloeh t =helloworld와 같으면 worldlloeh에서 helloworld를 만들기 위해 문자를 교환할 수 있으므로 출력은 True가 됩니다. 이 문제를 해결하기 위해 다음 단계를 따릅니다. − s_len :=s의 크기, t_len :=t의 크기 s_len이 t_len과 같지 않으면 거짓을 반환 freq :=s에 모든 문자와 주파수를 저장하는 맵 0에서 t_len 범위에 있는 i
이러한 문자 ( 및 )만 있는 두 개의 대괄호 시퀀스 s 및 t가 있다고 가정합니다. s와 t의 연결된 문자열이 균형이 맞는지 확인해야 합니다. 연결은 s | t 또는 t | s. 따라서 입력이 s =()())), t =()(()()와 같으면 출력은 True가 됩니다. 왜냐하면 t | s를 연결하면 () (()(()())), 균형이 잡혀 있습니다. 이 문제를 해결하기 위해 다음 단계를 따릅니다. − is_balanced_parenthesis() 함수를 정의합니다. 문자열이 필요합니다. 스택 :=새 목록 0~문자열 크기 범위의
숫자 n이 있다고 가정하고 총 제수의 수가 짝수 또는 홀수인지 찾아야 합니다. 따라서 입력이 n =75와 같으면 제수가 [1, 3, 5, 15, 25, 75]이므로 출력은 짝수입니다. 이것을 해결하기 위해 우리는 하나의 간단하고 효율적인 접근 방식을 따를 것입니다. 우리는 숫자가 완전제곱수일 때 홀수의 제수만 갖는다는 것을 관찰했습니다. 따라서 숫자가 완전제곱수가 아닌 경우 약수는 짝수입니다. 따라서 여기서는 숫자가 완전제곱수인지 여부만 확인하고 이를 기반으로 홀수 또는 짝수를 출력으로 반환할 수 있습니다. 이 문제를 해결하기
하나의 8진수가 있다고 가정합니다. 주어진 8진수의 10진수 표현이 7로 나누어 떨어지는지 여부를 확인해야 합니다. 따라서 입력이 n =61과 같으면 61의 십진법 표현이 6*8 + 1 =48 + 1 =49이므로 7로 나눌 수 있으므로 출력은 True가 됩니다. 따라서 입력이 n =61인 경우 61의 10진수 표현은 6*8 + 1 =48 + 1 =49이며 7로 나눌 수 있으므로 출력은 True가 됩니다. 이 문제를 해결하기 위해 다음 단계를 따릅니다. − 합계 :=0 num이 0이 아닌 동안 do 합계 :=합 + (숫자 모드
두 개의 숫자 x와 y가 있다고 가정합니다. 영역의 차이가 극명한지 아닌지 확인해야 합니다. 따라서 입력이 x =7, y =6과 같으면 제곱의 차이가 소수인 49 - 36 =13이므로 출력은 True가 됩니다. 이 문제를 해결하기 위해 다음 단계를 따릅니다. − (x + y)가 소수이고 (x - y)가 1이면 참 반환 그렇지 않으면 거짓을 반환 이해를 돕기 위해 다음 구현을 살펴보겠습니다. − 예시 def is_prime(num) : if num <= 1 : &n