목록코딩테스트 풀이/그외 (2)
Simple&Natural
원리는 매우 간단한데 직접 그림을 그려보면 더욱 이해가 쉽다. 90도 회전은 위아래를 대칭시킨 뒤 주 대각선에 대해 대칭시킨 형태이다. 대각선에 대해 먼저 대칭을 시켜도 된다. 여기서 주 대각선이란 배열의 행과 열이 같은 라인을 의미한다. 아래의 그림은 2차원 배열을 보기 쉽게 도식화한 것이다. 색이 칠해진 부분을 1, 빈 칸을 0 으로 보면 [[0, 1, 0], [1, 1, 0], [0, 0, 1]] 형태의 2차원 배열이 된다. 이 배열을 위에서부터 쌓아내렸을 경우와 아래에서부터 쌓아 올렸을 경우 두 가지로 생각해보자. (사실 별 차이는 없다) reverse를 이용하면 배열의 행이 역순이 되므로 위아래가 바뀌고 i, j 대신 j, i를 대입해주면 배열의 행과 열이 바뀌게 되므로 대각선에 대한 대칭이 된..
어떤 분이 질문을 하는 바람에 답변을 하는 겸 풀었던 행렬의 곱셈 관련 문제이다. 2차원 행렬의 곱셈은 기본적으로 m x n 행렬과 n x r 행렬의 곱인 경우에만 계산이 가능하다. 행렬을 2차원 배열로 만들고 앞 행렬의 행(M)과 뒤에 곱해지는 행렬의 열(R)을 각각 곱하고 합하면(N) 된다. 언어: Kotlin 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 fun main() { for (arr in solution("2 3 2", "100 0 1 2 3 4", "50 60 70 75 8 9")) { println() for (num in arr) { print("$num ") } } }..