처음 코드
# 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 |