Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

파이썬으로 숫자 삼각형에서 l번째 줄의 첫 번째 짝수 위치 찾기

숫자 삼각형이란?

아래와 같은 형태의 숫자 삼각형을 생성한다고 가정해 보겠습니다.

      1
    1 1 1
  1 2 3 2 1
1 3 6 7 6 3 1

이 삼각형에서 각 행의 원소는 바로 위에 있는 세 개의 숫자를 더해 만들어집니다. 이제 줄 번호 l이 주어졌을 때, 해당 줄에서 첫 번째 짝수가 등장하는 위치를 구하는 것이 목표입니다. 단, 위치 값은 1부터 시작합니다.

문제 예시

예를 들어 입력이 l = 5라면 출력은 2가 됩니다.

         1
      1  1  1
    1  2  3  2  1
  1  3  6  7  6  3  1
1  4 10 16 19 16 10  4  1

5번째 줄을 살펴보면 두 번째 위치에 있는 숫자 4가 해당 줄의 첫 번째 짝수입니다.

해결 방법

이 문제는 삼각형을 직접 생성하지 않고도 수학적 규칙만으로 빠르게 해결할 수 있습니다. 접근 단계는 다음과 같습니다.

  • l이 1 또는 2인 경우 → -1을 반환합니다. (해당 줄에는 짝수가 존재하지 않습니다)
  • l이 짝수인 경우:
    • l이 4로 나누어 떨어지면 → 3을 반환합니다.
    • 그렇지 않으면 → 4를 반환합니다.
  • l이 홀수인 경우 → 2를 반환합니다.

구현 코드

다음 파이썬 코드를 통해 더 잘 이해할 수 있습니다.

def solve(l):
    if l == 1 or l == 2:
        return -1
    elif l % 2 == 0:
        if l % 4 == 0:
            return 3
        else:
            return 4
    else:
        return 2

l = 5
print(solve(l))

입력 및 출력

입력:

5

출력:

2