나는 행렬과 관련된 몇 가지 과제를 작성 했으며 모두에게 공통적 인 점은 예제와 테스트 사례 모두에서 행렬을 나타낼 때 아래 형식과 같은 형식을 사용한다는 것입니다.
16 2 3 13
5 11 10 8
9 7 6 12
4 14 15 1
이것은 많은 언어에서 번거로운 형식 일 수 있습니다.
도전:
상단에 입력 된 형태 (이 게시물에서 직접 복사 / 붙여 넣기)로 주어진 형식으로 행렬을 취할 수있는 프로그램 / 함수를 작성하고 아래에 표시된 세 가지 다른 기존 형식 모두에서 동일한 행렬을 출력하십시오 .
입력 형식 :
다양한 수의 공백으로 구분 된 숫자와 행을 나타내는 줄 바꿈 (테스트 사례 참조).
- 숫자 사이의 공백 수는 일관성이 보장되지 않습니다. 그러나 각 열의 마지막 숫자가 정렬되어 있다고 가정 할 수 있습니다 (만약 도움이되는 경우).
- 정수와 부동 소수점이 모두있을 수 있으며 양수, 음수 또는 0 일 수 있습니다. 행렬에는 정수 와 부동 소수점이 동시에 포함되지 않습니다 .
- 음수 부동 소수점의 마이너스 및 소수점을 포함하여 10자를 넘지 않는 것으로 가정 할 수 있습니다.
- 각 행과 각 열에 동일한 수의 항목이 있다고 가정 할 수 있습니다.
- 빈 입력 행렬은 없지만 단일 숫자 또는 행이나 열이 하나 뿐인 행렬이있을 수 있습니다.
- 이 경우 테스트 사례에 표시된 출력 형식 중에서 선택할 수 있습니다.
이 게시물에서 직접 복사하여 인터프리터에 붙여 넣은 경우 프로그램 / 함수는 입력을 처리해야합니다 (STDIN 또는 함수 인수 또는 이와 동등한 것으로). 행렬 앞뒤에 원하는 것을 사용할 수 있지만 (괄호, 인용 부호, 괄호) 행렬 앞에는 변경할 수없는 문자 (줄 바꿈 포함)를 고려해야합니다.
명확히하기 위해 : 함수 / 프로그램이 호출 f
되고 행렬이 다음과 같다고 가정하십시오 .
1 -2
3 5
6 7
그런 다음 행렬을 다음과 같은 함수 인수로 제공 할 수 있습니다.
f(1 -2
3 5
6 7)
f([1 -2
3 5
6 7])
f("""1 -2
3 5
6 7""")
언어가 어떤 식 으로든 복사 / 붙여 넣기 매트릭스를 입력으로 사용할 수 없다면 다른 언어를 선택해야합니다.
출력 형식 :
다음 세 가지 형식으로 행렬을 출력해야합니다 (순서는 중요하지 않음).
[[16, 2, 3, 13], [5, 11, 10, 8], [9, 7, 6, 12], [4, 14, 15, 1]]
{{16, 2, 3, 13}, {5, 11, 10, 8}, {9, 7, 6, 12}, {4, 14, 15, 1}}
[16, 2, 3, 13; 5, 11, 10, 8; 9, 7, 6, 12; 4, 14, 15, 1]
- 원하는대로 세 개의 출력을 분리 할 수 있습니다 (예 : 줄 바꿈)
- 입력과 동일한 정밀도를 사용하여 숫자를 출력해야합니다 (예를 들어, 소수를 자르거나 출력 정수를 부동 수로 트리밍해서는 안 됨).
- 공간은 필수입니다
-
음수가 아니_
거나 비슷한 음수에 사용해야합니다 .
테스트 사례 :
16 2 3 13
5 11 10 8
9 7 6 12
4 14 15 1
----
[[16, 2, 3, 13], [5, 11, 10, 8], [9, 7, 6, 12], [4, 14, 15, 1]]
{{16, 2, 3, 13}, {5, 11, 10, 8}, {9, 7, 6, 12}, {4, 14, 15, 1}}
[16, 2, 3, 13; 5, 11, 10, 8; 9, 7, 6, 12; 4, 14, 15, 1]
0.14778 0.27114 0.24415
0.45997 0.12287 0.67470
0.28945 0.37928 0.51887
----
[[0.14778, 0.27114, 0.24415], [0.45997, 0.12287, 0.6747], [0.28945, 0.37928, 0.51887]]
{{0.14778, 0.27114, 0.24415}, {0.45997, 0.12287, 0.6747}, {0.28945, 0.37928, 0.51887}}
[0.14778, 0.27114, 0.24415; 0.45997, 0.12287, 0.6747; 0.28945, 0.37928, 0.51887]
-0.0398301 0.2403455 -0.2253368 0.3565870 0.0605803 0.0830780
-0.3254422 -0.1185191 -0.2989537 0.1647319 0.3621135 0.2018815
-0.0022281 -0.3362287 -0.3568447 0.4419063 0.3801872 -0.2847033
---
[[-0.0398301, 0.2403455, -0.2253368, 0.3565870, 0.0605803, 0.0830780], [-0.3254422, -0.1185191, -0.2989537, 0.1647319, 0.3621135, 0.2018815], [-0.0022281, -0.3362287, -0.3568447, 0.4419063, 0.3801872, -0.2847033],]
{{-0.0398301, 0.2403455, -0.2253368, 0.3565870, 0.0605803, 0.0830780}, {-0.3254422, -0.1185191, -0.2989537, 0.1647319, 0.3621135, 0.2018815}, {-0.0022281, -0.3362287, -0.3568447, 0.4419063, 0.3801872, -0.2847033},}
[-0.0398301, 0.2403455, -0.2253368, 0.3565870, 0.0605803, 0.0830780; -0.3254422, -0.1185191, -0.2989537, 0.1647319, 0.3621135, 0.2018815; -0.0022281, -0.3362287, -0.3568447, 0.4419063, 0.3801872, -0.2847033]
0 4 1 0
0 0 -6 0
0 1 4 -3
2 0 0 8
0 0 0 0
----
[[0, 4, 1, 0], [0, 0, -6, 0], [0, 1, 4, -3], [2, 0, 0, 8], [0, 0, 0, 0]]
{{0, 4, 1, 0}, {0, 0, -6, 0}, {0, 1, 4, -3}, {2, 0, 0, 8}, {0, 0, 0, 0}}
[0, 4, 1, 0; 0, 0, -6, 0; 0, 1, 4, -3; 2, 0, 0, 8; 0, 0, 0, 0]
1
----
[1] (or [[1]])
{1} (or {{1}})
[1] (or 1)
1 2
----
[1, 2] (or [[1, 2]])
{1, 2} (or {{1, 2}})
[1, 2]
4
5
----
[[4], [5]]
{{4}, {5}}
[4; 5]
나는 이것을 완전히 알고있다 있지만,이 도전에서 성가신 I / O 형식이 요점입니다. 일부 언어에서는 출력 형식을 지정해야하는 반면, 입력을 읽는 것이 다른 언어에서는 가장 어려운 부분입니다.
입력을 읽는 것이 어려운 경우에는 실망하지 마십시오. 이러한 제출은 가장 흥미로운 제출일 수 있습니다. 쇼트는 반드시 인상적인 것과 같을 필요는 없습니다. 그리고 항상 그렇듯이 설명이 권장됩니다!