트랙
/
Scheme
Scheme
/
연습 문제
/
파스칼의 삼각형
파스칼의 삼각형

파스칼의 삼각형

보통

소개

날씨가 이렇게 좋은데 한 시간이나 교실에 앉아 있어야 한다니, 별로 내키지 않아요. 짜증이 난 채로 교실에 들어서는데, 칠판에 묘하게 만족스러운 삼각형 모양이 눈에 들어와요. 수학 선생님이 오시기를 기다리는 동안, 삼각형에서 몇 가지 패턴이 눈에 띄지 않을 수 없어요. 바깥쪽 값은 모두 1이고, 줄이 내려갈 때마다 값이 하나씩 늘어나며, 삼각형은 좌우 대칭이에요. 신기하죠!

자리에 앉은 지 얼마 지나지 않아 선생님이 들어오시더니, 이 삼각형이 바로 그 유명한 파스칼의 삼각형이라고 알려주세요.

그다음 한 시간 동안 선생님은 이 삼각형 안에 숨어 있는 놀라운 사실들을 하나씩 알려주세요:

  • N개의 값에서 K개의 원소를 고르는 경우의 수를 계산하는 데 쓸 수 있어요.
  • 피보나치 수열이 들어 있어요.
  • 홀수와 짝수를 서로 다른 색으로 칠하면 시에르핀스키 삼각형이라는 아름다운 패턴이 나타나요.

선생님은 반 친구들에게 다른 쓰임새도 찾아보라고 권하시고, 그런 게 훨씬 더 많다고 확신시켜 주세요! 바로 그때 학교 종이 울려요. 지난 한 시간 동안 파스칼의 삼각형을 배우는 데 푹 빠져 있었다는 걸 깨달아요. 가방에서 노트북을 얼른 꺼내 들고 밖으로 나가요. 햇살도, 파스칼의 삼각형이 품은 신비로움도 둘 다 마음껏 즐길 준비가 된 거예요.

지침

이번 과제는 파스칼의 삼각형에서 처음 N개 행을 출력하는 거예요.

파스칼의 삼각형은 양의 정수로 이루어진 삼각형 모양의 배열이에요.

파스칼의 삼각형에서는 한 행에 있는 값의 개수가 그 행의 번호와 같아요(행 번호는 1부터 시작해요). 따라서 첫 번째 행에는 값이 하나, 두 번째 행에는 값이 둘, 이런 식으로 늘어나요.

맨 위의 첫 번째 행에는 값이 하나뿐이에요: 1. 그다음 행의 값들은 이전 행에서 현재 위치의 바로 오른쪽과 바로 왼쪽에 있는 수를 더해서 구해요.

이전 행의 현재 위치 왼쪽이나 오른쪽에 값이 없다면(가장 왼쪽과 가장 오른쪽 위치에서만 이렇게 돼요), 그 위치의 값은 0으로 생각하고 더해요(덧셈에서 사실상 "무시"하는 셈이죠).

예시

파스칼의 삼각형에서 처음 5개 행을 살펴볼까요:

    1
   1 1
  1 2 1
 1 3 3 1
1 4 6 4 1

맨 위 행에는 값이 하나 있고, 그 값은 1이에요.

가장 왼쪽과 가장 오른쪽 값은 앞 행에서 고려할 위치가 하나뿐이에요. 왼쪽 값은 자기 오른쪽 위치를, 오른쪽 값은 자기 왼쪽 위치를 보죠. 맨 위 값이 1이므로, 가장 왼쪽과 가장 오른쪽 값도 모두 1이라는 걸 알 수 있어요.

나머지 값들은 모두 고려할 위치가 두 개예요. 예를 들어 다섯 번째 행(1 4 6 4 1)의 가운데 값은 6이에요. 앞 행에서 그 왼쪽과 오른쪽에 있는 값이 각각 3과 3이기 때문이죠:

GitHub에서 편집 링크가 새 창이나 탭에서 열려요
Scheme Exercism

파스칼의 삼각형 문제를 시작해 볼 준비가 됐나요?

Exercism에 가입하고 Scheme 트랙을 연습 문제 39개, 그리고 실제 사람의 멘토링과 함께 배우고 익혀 보세요. 모두 무료예요.