Notice
Recent Posts
Recent Comments
Link
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
Tags
- 프로젝트
- string메서드
- 제너릭메서드
- 동전교환알고리즘
- 프로그래머스
- 스프링
- Java
- 99클럽
- openapi
- 4A피드백
- 루트사용자
- 자바
- 백준
- API
- 배열탐색
- 향상된for문
- 네이티브애플리케이션
- 스레드동기화
- ChatGPT
- 참조변수타입변환
- 파일사용권한
- Spring
- staging_area
- 재귀적사고
- 성장형마인드셋
- SQL
- API명세서
- SQ3R
- 날씨API
- 코딩테스트
Archives
- Today
- Total
개발 공부용
1209. [S/W 문제해결 기본] 2일차 - Sum 본문
문제
SW Expert Academy
SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!
swexpertacademy.com
100X100의 2차원 배열이 주어질 때, 각 행의 합, 각 열의 합, 각 대각선의 합 중 최댓값을 구하여라

입력
- 테스트 케이스 10개
- 첫 줄: 테스트 케이스 번호
- 두번째 줄부터 ~: 100X100의 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
.......
풀이
for _ in range(10):
testNum = input().strip()
numArr = [list(map(int, input().split())) for _ in range(100)]
#1) 행의 합
maximum = 0
for arr in numArr:
maximum = max(maximum, sum(arr))
#2) 열의 합
numArrRe = [[numArr[j][i] for j in range(100)] for i in range(100)]
for arrRe in numArrRe:
maximum = max(maximum, sum(arrRe))
#3) 대각선의 합
crossR = [numArr[l][l] for l in range(100)] #4)
maximum = max(maximum, sum(crossR))
crossL = [numArr[100-1-k][k] for k in range(100)] #5)
maximum = max(maximum, sum(crossL))
print(f"#{testNum} {maximum}")
행의 합, 열의 합, 대각선의 합을 각각 구하고 그 중 최댓값을 찾는다.
1) 행의 합의 경우, 입력받은 그대로 한 행씩 합을 구해서 최댓값을 찾는다.
2) 열의 합의 경우, 입력받은 2차원 배열의 행과 열을 반전시킨 배열을 만들어준 이후, 한 행씩 합을 구해서 최댓값을 찾는다.
3) 대각선의 합의 경우, 오른쪽 아래를 향하는 대각선과 왼쪽 아래를 향하는 대각선을 각각 계산한다.
4) 오른쪽 아래를 향하는 대각선에 속하는 요소들로 배열을 만들어준 이후, 합을 구한다.
5) 왼쪽 아래를 향하는 대각선에 속하는 요소들로 배열을 만들어준 이후, 합을 구한다.
'코딩 테스트' 카테고리의 다른 글
| 그리디 | 백준 13305 주유소 (0) | 2025.11.25 |
|---|---|
| 문자열 | 1213. [S/W 문제해결 기본] 3일차 - String (1) | 2025.11.21 |
| 재귀 | 1217. [S/W 문제해결 기본] 4일차 - 거듭 제곱 (0) | 2025.11.17 |
| 팰린드롬 | 1216. [S/W 문제해결 기본] 3일차 - 회문2 (0) | 2025.11.17 |
| 카운팅 정렬 | 1221. [S/W 문제해결 기본] 5일차 - GNS (0) | 2025.11.13 |