숫자로 이루어진 행렬을 나타내는 문자열이 주어지면, 그 행렬의 행과 열을 반환해요.
예를 들어, 다음과 같이 줄바꿈 문자가 들어 있는 문자열이 있다고 해요:
9 8 7
5 3 2
6 6 7
이 문자열은 다음 행렬을 나타내요:
1 2 3
|---------
1 | 9 8 7
2 | 5 3 2
3 | 6 6 7
이때 코드는 다음을 내놓을 수 있어야 해요:
예시 행렬의 행은 다음과 같아요:
그리고 열은 다음과 같아요:
이 연습 문제를 완료하려면 Eq와 Show 인스턴스를 가진 Matrix 데이터 타입을 만들고, 다음 함수들을 구현해야 해요:
colscolumnflattenfromListfromStringreshaperowrowsshapetranspose더미 데이터 선언과 타입 시그니처는 이미 준비되어 있지만, 함수를 정의하고 의미 있는 데이터 타입이나 newtype, 타입 동의어를 만드는 것은 직접 해야 해요.
입력값 검증은 필요하지 않아요. 행렬이 직사각형이 아니거나 잘못된 문자가 들어오는 등의 경우에는 그냥 실패하게 놔둬도 돼요.
shape는 (행 개수, 열 개수) 형태예요.
Exercism에 가입하고 Haskell 트랙을 연습 문제 107개, 그리고 실제 사람의 멘토링과 함께 배우고 익혀 보세요. 모두 무료예요.