[Python] Numpy를 사용하지 않고 전치행렬 만들기

김영후·2022년 11월 13일
0

Python 회고록

목록 보기
1/5

PS문제를 풀이하던 중 numpy 라이브러리를 import하지 않고 전치행렬을 만들어 해결해야하는 문제를 마주치게 되었다. 그에 대한 간단한 풀이법을 기록하고자 이 글을 쓰게 되었다. 내가 푼 문제의 경우는 정방행렬이었지만(input은 한 줄에 space를 이용해 한 row를 받아오는 경우) 응용한다면 정방행렬이 아닌 경우도 충분히 풀이가 가능할 것이다.

전체 코드

puzzle = []
N = int(input())
for i in range(N):
	puzzle.append([*map(int, input().split())])
transposed_puzzle = [[0 for row in range(N)] for col in range(N)]

for i in range(N):
	for j in range(N):
    	transposed_puzzle[j][i] = puzzle[i][j]

만약 정방행렬이 아니라면 어떻게 하면 될까? row의 수와 col의 수를 따로 저장하고 마지막 이중 for문의 range를 row와 col로 대체해주면 해결된다! 아래는 그에 대한 코드이다.

puzzle = []
row = int(input())
col = int(input())
for i in range(row):
    puzzle.append([*map(int, input().split())])
transposed_puzzle = [[0 for row in range(row)] for col in range(col)]

for i in range(row):
    for j in range(col):
        transposed_puzzle[j][i] = puzzle[i][j]

앞으로 다양한 문제에서 이를 제법 요긴하게 사용할 것 같다.

profile
PNU CSE 16th / Busan, South Korea

0개의 댓글