가장 친한 친구가 직소 퍼즐을 모으기 시작했고, 수집한 퍼즐의 자세한 목록을 만들고 싶어 해요. 전체 조각 수, 행과 열의 개수, 테두리 조각과 안쪽 조각의 개수, 가로세로 비율, 퍼즐 형식 같은 정보를 기록하려고요. 두 사람의 힘을 합쳐도 조각이 천 개나 되는 직소 퍼즐 하나를 맞추는 데 몇 시간이 걸려요. 게다가 그다음에는 행과 열을 세고 나머지 숫자들을 직접 계산해야 하죠. 조각이 수천 개에 달하는 더 큰 퍼즐들은 이제 꽤 막막해 보여요. "분명 더 나은 방법이 있을 거예요!" 하고 외치며, 문제를 해결하려고 컴퓨터 앞에 앉아요.
직소 퍼즐에 대한 일부 정보가 주어졌을 때, 빠진 조각을 채워요.
정보가 부족해 세부 사항을 완성할 수 없거나 주어진 부분들이 서로 모순된다면, 사용자에게 알려야 해요.
직소 퍼즐에 대한 전체 정보는 다음 항목들로 이루어져 있어요:
pieces: 조각의 총개수border: 가장자리 조각의 개수inside: 안쪽(가장자리가 아닌) 조각의 개수rows: 행의 개수columns: 열의 개수aspectRatio: 열과 행의 가로 세로 비율format: 퍼즐 형식으로, portrait, square, landscape 중 하나예요이 연습 문제에서는 조각이 정사각형이라고 가정해도 돼요. 그러면 형식은 가로 세로 비율에서 도출할 수 있어요:
portrait예요square예요landscape예요조각이 6개인 세로형 직소 퍼즐로, 모든 조각이 가장자리 조각이고 안쪽 조각은 하나도 없어요. 열이 2개, 행이 3개예요. 가로 세로 비율은 0.666666... (2/3)이에요.
조각이 9개인 정사각형 직소 퍼즐로, 가운데에 있는 하나를 제외한 모든 조각이 가장자리 조각이고, 그 하나는 안쪽 조각이에요. 열이 3개, 행이 3개예요. 가로 세로 비율은 1.0 (3/3)이에요.
조각이 12개인 가로형 직소 퍼즐로, 10개는 가장자리 조각이고 2개는 안쪽 조각이에요. 열이 4개, 행이 3개예요. 가로 세로 비율은 1.333333... (4/3)이에요.
Exercism에 가입하고 PowerShell 트랙을 연습 문제 136개, 그리고 실제 사람의 멘토링과 함께 배우고 익혀 보세요. 모두 무료예요.