처음 코드
# 10개의 테스트 케이스 for idx in range(1, 11): n = int(input()) # 정사각형 안의 요소들 받아오기 board = [list(map(int, input().split())) for _ in range(100)] diagonal_t = 0 # 대각선 합 r_diagonal_t = 0 # 반대편 대각선 합 total = [] # 합들을 담을 리스트 for i in range(100): column_t = 0 for j in range(100): column_t += board[j][i] if i==j: diagonal_t += board[i][j] r_diagonal_t += board[i][99-j] total.extend([column_t, sum(board[i])]) total.extend([diagonal_t, r_diagonal_t]) print('#{} {}'.format(idx, max(total)))
* 조금 손본 코드
리스트 안쓰고 조건문 만족하면 변수에 새 값 할당하는 식.
그리고 대각선은 i j 두 값을 이용하지 않고 하나만 쓰면 되니까 마지막 for문 안에 넣어주지 않았다.
# 10개의 테스트 케이스 for idx in range(1, 11): n = int(input()) # 정사각형 안의 요소들 받아오기 board = [list(map(int, input().split())) for _ in range(100)] diagonal_t = 0 # 대각선 합 r_diagonal_t = 0 # 반대편 대각선 합 max_col = 0 # 최대 열의 합 max_row = 0 # 최대 행의 합 total = [] # 합들을 담을 리스트 for i in range(100): # 대각선 값 더해주기 # (대각선의 방향은 상관없지만 그림대로 짜보았다) diagonal_t += board[i][i] # 좌상 -> 우하 r_diagonal_t += board[i][99 - i] # 우상 -> 좌하 # 매 column 합 담을 변수 column_t = 0 for j in range(100): # column 더하기 column_t += board[j][i] # 이전의 열 또는 행 보다 크다면 해당 값 저장 max_col = column_t if column_t > max_col else max_col max_row = sum(board[i]) if sum(board[i]) > max_row else max_row # 4가지 라인 중, 가장 합이 큰 값 출력 print('#{} {}'.format(idx, max(max_col, max_row, diagonal_t, r_diagonal_t)))
'Algorithm > SW Expert Academy' 카테고리의 다른 글
[Python] 1210. ladder1 (0) | 2021.09.06 |
---|---|
[Python] 1954. 달팽이 숫자 (0) | 2021.08.11 |
[Python] 1208. Flatten (0) | 2021.08.11 |
[Python] 4831. 전기버스 (0) | 2021.08.10 |
[Python] 4835. 구간합 (0) | 2021.08.10 |