python 어떻게 더 간결하게 소명종 사과 해결

이 문제는 우리가 세 가지 작은 문제를 해결해야 한다.
  • 모든 조작이 끝난 후 모든 사과나무에 사과가 남은 개수를 출력한다
  • 사과가 떨어지는 사과 개수가 발생한다
  • 세 개의 사과나무와 인접하여 사과가 떨어지는 상황이 발생한 그룹
  • 가장 재미있는 것은 세 번째 작은 질문입니다. 제 이해에 따르면 이 사과나무들은 일렬로 열거되어 있습니다. 사과나무마다 사과가 떨어졌는지의 상태를 목록에 저장하고 목록에 3개의 1이 연속적으로 나타난 횟수를 통계하면 됩니다.그러나 제목 속의 이 N개의 사과나무는 둥글게 배열되어 있으며, 이곳의 인접성은 목록의 머리와 끝을 고려해야 한다.
    여러분의 방법을 요약하면 대략 세 가지가 있습니다.
  • 세 그루의 나무를 초과할 때 목록 색인을 통해 나머지 부분을 해결한다
  • 하나는 목록의 앞의 두 요소를 목록의 끝에 추가하여 해결하는 것이다
  • 마지막은 상대적으로 복잡하다. 매번 반복할 때마다 목록의 머리와 끝의 상황을 고려하고 값을 부여함으로써 색인을 바꾸어야 한다
  • 위의 방식이 너무 복잡하다고 느껴서 코드를 공유했습니다.
    
    for i in range(len(l)):
     if l[i-2] and l[i-1] and l[i]:
     e += 1
    색인을 바꾸고 목록의 마지막 두 요소부터 읽습니다. 모두 1인 경우 e는 1을 추가합니다.이 방법은 보기에 좀 간편해 보인다.
    또한 상기 세 가지 상황의 코드를 공유하여 여러분이 필요로 하는 것을 스스로 취할 수 있습니다.
    
    if N >= 3: #    0
     for y in range(len(is_fall)):
     if is_fall[y%len(is_fall)] == is_fall[(y+1)%len(is_fall)] == is_fall[(y+2)%len(is_fall)] == 1:
      E += 1
    else:
     E = 0
    
    res_drop.append(res_drop[0])
    res_drop.append(res_drop[1])
    for i in range(N):
     if res_drop[i] == 1 and res_drop[i+1] == 1 and res_drop[i+2] == 1:
     num += 1
    print(' '.join([str(res),str(count_drop),str(num)]))
    
    for i in range(len(is_fall)):
     pre=i-1
     if pre<0:
     pre+=len(is_fall)
     next=i+1
     if next > len(is_fall)-1:
     next-=len(is_fall)
     if is_fall[pre]==is_fall[i]==is_fall[next]==1:
     E+=1
    다음은 이 문제에 대한 나의 해법이다.
    
    n = int(input())
    result = 0 #  
    count = 0
    e = 0 #  
    dl = 0 #  
    l = [0] * n # n 
    for i in range(n):
     fs = []
     zs = []
     s = total = 0
     x = list(map(int,input().split()))
     x = x[::-1]
     caozuo = x.pop()
     # 
     for j in range(caozuo):
     s = x[j]
     if s <= 0:
      fs.append(s)
      #print(fs)
     else:
      zs.append(s)
      break
    
     result += sum(fs) + zs[0]
    
     total = x.pop()
     ss = 0
     for j in range(len(x)):
     flag = z = 0
     s = x.pop()
     if s < 0:
      ss = ss + s
     elif s == 0:
      continue
     else:
      z = s
      total = total + ss
      if total > z:
      flag = 1
      else:
      flag = 0
     l[i] = flag
     if flag == 1:
      dl += 1
      break
     else:
      continue
      
    for i in range(len(l)):
     if l[i-2] and l[i-1] and l[i]:
     e += 1
    print(result,dl,e)
    첫 번째 질문의 사고방식은 목록을 반전시키고 목록을 훑어보며 복수를 만나고 정수를 만나면 멈추고 이 정수로 앞의 복수와 모든 나무의 사과 수를 순환하는 것이다.
    두 번째 질문의 사고방식은 창고를 이용하여 팝업 목록의 요소에 대해 화합을 구하고 정수가 멈추면 그 크기를 비교하여 드랍 여부를 판단하는 것이다.
    이상은python이 어떻게 소명종 사과를 더욱 간결하게 해결할 수 있는지에 대한 상세한 내용입니다. 더 많은python이 소명종 사과를 해결할 수 있는지에 대한 자료는 저희 다른 관련 글에 주목하세요!

    좋은 웹페이지 즐겨찾기