행렬

행렬

보통

지침

숫자로 이루어진 행렬을 나타내는 문자열이 주어지면, 그 행렬의 행과 열을 반환해요.

예를 들어, 다음과 같이 줄바꿈 문자가 들어 있는 문자열이 있다고 해요:

9 8 7
5 3 2
6 6 7

이 문자열은 다음 행렬을 나타내요:

    1  2  3
  |---------
1 | 9  8  7
2 | 5  3  2
3 | 6  6  7

이때 코드는 다음을 내놓을 수 있어야 해요:

  • 행 목록: 각 행을 왼쪽에서 오른쪽으로 읽으면서 위에서 아래로 이동해요.
  • 열 목록: 각 열을 위에서 아래로 읽으면서 왼쪽에서 오른쪽으로 이동해요.

예시 행렬의 행은 다음과 같아요:

  • 9, 8, 7
  • 5, 3, 2
  • 6, 6, 7

그리고 열은 다음과 같아요:

  • 9, 5, 6
  • 8, 3, 6
  • 7, 2, 7

도전 과제

  • for문을 하나도 사용하지 않고 이 풀이를 구현할 수 있을까요? (즉, 이터레이터를 사용해서요)
  • Matrix에 두 개의 자료 구조(하나는 행, 다른 하나는 열)를 두는 건 비교적 간단하겠지만, 입력의 복사본 두 개를 구조체에 담지 않고도 이 풀이를 구현할 수 있을까요?

도움이 되는 메서드

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

행렬 문제를 시작해 볼 준비가 됐나요?

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