천재로 가는 길 - 파이톤 시리즈 2 레벨

2층에 오신 것을 환영합니다. Codr의 랭킹 모델에서 파이톤 도전을 해결하겠습니다.우리의 목표는 천재 수준에 도달하는 것입니다. 전보를 환영합니다Codr!

우리는 매우 어려운 도전부터 시작한다.주어진 함수 이름 cross 은 두 개의 수조의 부피인 것 같다.우리는 두 개의 버그를 복구해야 한다.첫 번째 물방울 결함은 간단한 추측이다. 수학적 대칭성을 이용하여 가변적이어야 한다고 자신할 수 있다. 계산이 모두 유행이기 때문이다. a두 번째 로켓의 오류는 반드시 하나의 숫자이어야 한다. 우리가 그것을 계산하지 않으면, 우리는 추측하기 어렵다.
a = [8, ?, 6]
b = [6, 2, 8]

cross(a,b):
   [ ?*8 - 6*6,
     6*6 - 8*8,
     8*2 - ?*6 ]

out = cross(a,b)
A = abs(out[2]) # -->  8*2 - ?*6
such that A == 32


32 = 8*2 - ?*6
? = (32-16)/-6
? = 2.6667
This number is not in the list of answers, something isn't right...

Notice that A = abs(out[2]), this means that out[2] could be negative, let's test:

-32 = 8*2 - ?*6
? = 8


숫자 그룹을 정렬하고 세 번째 색인에서 값을 요청하는 아주 간단한 도전이 있습니다.
정렬된 그룹은 다음과 같습니다: a * b

이 도전은 우리가 복구해야 할 네 개의 빈틈이 있다.첫 번째 돈주머니 구멍은 c가 어떤 물건 안에 있는지 검사한다.이 물건은 아마도 [3,6,7,7,8]dict일 것이다. 왜냐하면 이것은 아래에서 여러 번 사용되고 c는 키이기 때문이다.
devil bug 뒤에는 가짜 값이고if 조건에 있기 때문에 비교 연산자 (= 또는! =) 일 가능성이 높습니다.코드의 논리에 따르면 이것은 MP에 c가 없는지 검사해야 하기 때문에 오류는 MP일 것이다.
홍심은 c를 지수로 해야 한다.
판다는 한눈에 보기 어려울 것이다.그러나 MP의 모든 키는 T의 어떤 문자이기 때문에 판다 자체가 T일 가능성이 높다.이 줄은 기본적으로 T와 인덱스 1에서 문자를 가져와 T에 나타나는 횟수를 검사합니다. (MP 덕분입니다.)


함수==는 두 진열에서 운행하는데 점적으로 보인다.dot가 60으로 되돌아갈 수 있도록 판다를 위한 값을 찾아야 합니다.
함수를 보면 관건적인 조작dot을 볼 수 있다.따라서 s += a[i] * b[i]a 중의 모든 원소는 곱하고 화합을 구해야 한다.
a = [6,2,2]
b = [?,8,4]
s = 0
while:
  s += 6*?
  s += 2*8
  s += 2*4

Find ? such that s == 60

60 = 6*? + 2*8 + 2*4
? = 6


이것은 매우 좋은 함수다.불행히도 우리는 그것을 완전히 분석하고 이해할 필요가 없다.)우리는 판다의 값을 수정하기만 하면 됩니다. 이것은 표지부입니다.
만약 당신이 이 코드에서 몇 가지 모델을 찾는다면, 당신은 이 줄에 여러 번 나타난 것을 보게 될 것이다. b 우리의 판다 문제는 이미 해결되었다.


이 함수는 하나의 그룹을 받아들여 브리 값을 되돌려줍니다.우리는 두 개의 버그만 복구할 수 있다.마름모꼴 오류는 값merged .append(...)이어야 합니다. 트루가 낮은 위치에서 되돌아왔기 때문입니다.
붉은 사과는 좀 까다로울 수 있지만 조건 검사를 하면 유일한 문제는 현재 원소False가 원소i보다 작거나 같은지i - apple다.apple는 모든 숫자가 될 수 있지만, 유효한 그룹 인덱스이며, 경계를 위반하지 않아야 한다.이런 코드의 가장 흔히 볼 수 있는 용도는 이전의 값과 현재의 값을 비교하는 것이다.A가 False를 유발하고 입력 배열이 연속적으로 같은 두 개의 숫자(=5)로 증가해야 한다고 가정하면 if 조건은true이고 함수는False를 되돌려줍니다.


우리는 R의 값을 구해야 하기 때문에 코드를 분석해야 한다.
변수 S는 숫자 세트입니다.for 순환은 S의 모든 문자를 교체합니다. 변수 mp는 S의 모든 문자가 나타나는 횟수를 계산하는 데 사용됩니다. 최종 R = mp['0'] 은 기본적으로 문자가 S에 나타나는 횟수를 묻습니다.


이 네 가지 오류를 해결하기 위해서 우리는 반드시 이 간단한 알고리즘의 작용을 이해해야 한다.
수조를 정해라. 비록 수조는 비어 있지 않지만, 그것은 순환할 것이다.이것은 그룹의 마지막 (pop) 을 x로 옮깁니다. 그리고if 조건은 prev (~ previous) 값을 x와 비교합니다. 마름모꼴 오류는 != 일 수 있습니다. 유효한 숫자만 비교할 수 있도록 하고, 녹색 심장은 prev가 될 것입니다.만약 x가 prev보다 크다면, x는 R에 분배될 것이다.
그리고 판다와 로켓은 같은 선상에 있다.우리는 prev가 그룹의'previous'요소를 추적하는 데 사용되는 것을 알고 있기 때문에 이것은 x를 prev에 분배하는 좋은 곳이다. x가 이미 처리되었기 때문이다: prev = x

눈사람은 변수 이름이어야 한다. 아래에서 우리가 만난 변수 people 를 보면 아직 성명되지 않았고, 그 내용이 의미가 있다는 것을 고려할 수 있다.
물방울 버그는 다른 기존 대상과 일치성을 유지하기 위해 "name"이어야 합니다.다이아몬드는 한 사람의 이름이어야 하며, 가능한 선택 목록에서 엿볼 수 있다.마지막으로 이 이름은 중요하지 않다. 왜냐하면 알고리즘은 ana에만 관심이 있기 때문이다.


우리는 위에서 이 알고리즘을 만났는데, 이것은 S의 모든 문자의 출현 횟수를 추적한다. 그래서 우리는 빨간 애플이 문자열이어야 한다는 것을 안다.판다는 키워드for일 것이다.돈주머니와 물방울은 모두 mp일 것이다.


R을 풀기 위해서는 빠른 분석 알고리즘이 필요하다.배열의 각 요소에 대해 so R이 True로 설정된 경우 요소가 3과 같지 않은지 확인합니다.기본적으로 배열에 3을 제외한 요소가 있으면 True가 반환됩니다.


이렇게 해서 우리는 3급(고급)에 진입하였습니다. 기대해 주십시오!만약 당신이 이 글을 좋아한다면 반드시 가입Codr하고 나의 DEV<3을 좋아하고 주목해야 합니다!

좋은 웹페이지 즐겨찾기