상세 컨텐츠

본문 제목

[c언어] 코딩도장 64.7 전치행렬 만들기 문제풀이

c언어

by ~지우~ 2021. 6. 26. 15:58

본문

728x90

오늘은 코딩도장 심사문제 64.7 문제풀이를 해보겠습니다.

 

<문제>표준 입력으로 정수 16개가 입력됩니다. 다음 소스 코드를 완성하여 행렬의 전치행렬이 출력되게 만드세요.

전치행렬은 왼쪽 위부터 오른쪽 아래까지의 대각선(주대각선)을 기준으로 값을 뒤집은 행렬을 말합니다.

 

2차원 배열이므로 이중 반복문을 사용해야 합니다.

2차원 배열의 인덱스를 임의로 arr[i][j]로 놓고 설명하겠습니다.

이중 반복문 안에서 arr[i][j]의 값과 arr[j][i]의 값을 바꾸어 주면 전치행렬을 만들 수 있습니다.

하지만 주의할 점이 있습니다.

 주대각선의 수를 기준으로 값을 뒤집는 것이므로 arr[i][j]에서 i와 j의 값이 같지 않을 때만 arr[i][j]의 값과 arr[j][i]의 값을 바꿔 주어야 합니다.

또한, j가 i보다 클 때만 arr[i][j]의 값과 arr[j][i]의 값을 바꿔 주어야 합니다.

j가 i보다 클 때만 arr[i][j]의 값과 arr[j][i]의 값을 바꾸라는 조건없이 코드를 작성하면 이미 바꾼 값을 또 다시 바꾸게 되어서 전치행렬이 만들어 지지 않게 됩니다.

 

728x90

관련글 더보기

댓글 영역