숫자 삼각형이란?
아래와 같은 형태의 숫자 삼각형을 생성한다고 가정해 보겠습니다.
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