티스토리 뷰
문제 설명
SW Expert Academy
SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!
swexpertacademy.com
다음 100X100의 2차원 배열이 주어질 때, 각 행의 합, 각 열의 합, 각 대각선의 합 중 최댓값을 구하는 프로그램을 작성하여라.다음과 같은 5X5 배열에서 최댓값은 29이다.
[제약 사항]
총 10개의 테스트 케이스가 주어진다.
배열의 크기는 100X100으로 동일하다.
각 행의 합은 integer 범위를 넘어가지 않는다.
동일한 최댓값이 있을 경우, 하나의 값만 출력한다.
[입력]
각 테스트 케이스의 첫 줄에는 테스트 케이스 번호가 주어지고 그 다음 줄부터는 2차원 배열의 각 행 값이 주어진다.
[출력]
#부호와 함께 테스트 케이스의 번호를 출력하고, 공백 문자 후 테스트 케이스의 답을 출력한다.
입력
1
13 24 13 24 1 7 24 11 22 18 22 16 24 8 15 28 9 24 14 14 28 18 17 9 3 29 22 12 28 2 25 6 11 26 14 19 3 26 13 6 23 3 3 29 13 25 4 27 8 25 28 8 9 17 28 13 24 27 9 25 21 20 6 16 28 5 22 11 9 29 13 26 28 2 11 10 14 14 5 11 26 9 15 3 23 9 8 11 12 6 9 18 6 14 28 21 24 24 20 12
20 28 29 21 27 13 29 16 6 28 5 7 13 20 7 1 11 1 23 12 4 9 27 19 26 2 21 2 1 18 4 20 6 4 18 9 20 3 28 28 1 21 1 2 11 7 20 15 7 29 14 7 15 10 29 24 2 25 29 3 11 9 17 6 2 17 17 11 7 20 26 10 8 1 15 10 2 29 7 9 17 8 25 28 29 12 28 19 3 4 17 17 28 9 2 15 14 6 20 3
13 19 28 23 11 1 19 5 5 28 19 18 16 14 26 20 6 12 20 18 16 22 25 21 25 29 3 ............
........
........
출력
#1 1712
#2 1743
.......
.......
풀이 과정
이게 왜 D3? 양심에 찔리니 한 문제 더 풀어야겠네요.
그대로 각 행의 총합, 각 열의 총합, 좌상단에서 우하단 방향의 대각선상의 값 총합, 우상단에서 좌하단 방향의 대각선상의 값 총합을 구해서 배열에 넣어둔 다음, 그 배열의 최댓값을 출력하면 됩니다.
정답 코드
# 테케 10개로 고정
for _ in range(10):
num = int(input())
grid = [[] for _ in range(100)]
answers = []
for i in range(100):
grid[i] = list(map(int, input().split()))
# 각 행의 합
for i in range(100):
answers.append(sum(grid[i]))
# 각 열의 합
for j in range(100):
tmp = 0
for i in range(100):
tmp += grid[i][j]
answers.append(tmp)
# 우하단 방향 대각선의 합
tmp = 0
for i in range(100):
tmp += grid[i][i]
answers.append(tmp)
tmp = 0
# 좌하단 방향 대각선의 합
for i in range(100):
tmp += grid[i][99-i]
answers.append(tmp)
print("#%d %d" % (num, max(answers)))
이상입니다.
'Algorithm' 카테고리의 다른 글
SWEA 2817번: 부분 수열의 합 (D3) - Python 풀이 (0) | 2025.05.15 |
---|---|
SWEA 1215번: 회문1 (D3) - Python 풀이 (2) | 2025.05.15 |
SWEA 1970번: 쉬운 거스름돈 (D2) - Python 풀이 (0) | 2025.05.15 |
SWEA 1288번: 새로운 불면증 치료법 (D2) - Python 풀이 (0) | 2025.05.15 |
SWEA 2805번: 농작물 수확하기 (D3) - Python 풀이 (1) | 2025.05.14 |
- Total
- Today
- Yesterday
- D2
- SQL
- Swift
- BFS
- 큐
- Baekjoon
- dp
- 코딩테스트
- 코테준비
- 그리디
- Programmers
- swea
- dfs
- Swift로백준풀기
- Deque
- 이분탐색
- 프로그래머스
- 다이나믹프로그래밍
- 알고리즘
- 힙
- ios
- 백트래킹
- 구현
- 백준
- 정렬
- Python
- D3
- 투포인터
- 스택
- MySQL
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |