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
                            
                        
                          
                          - vector
- N과M
- 정렬
- C++
- 깊이우선탐색
- 프로그래머스
- 에라토스테네스의 체
- 티스토리챌린지
- 백트래킹
- int
- Set
- 문자열
- 백준
- Sort
- BFS
- 최소공배수
- 알고리즘
- DFS
- priority_queue
- 다이나믹프로그래밍
- 우선순위큐
- 배열
- 분할정복
- 그래프
- stoi
- map
- DP
- 유클리드호제법
- 이분탐색
- 오블완
                            Archives
                            
                        
                          
                          - Today
- Total
안녕 세상아,
[SWEA/c++] 1209. [S/W 문제해결 기본] 2일차 - Sum 본문
SW Expert Academy
SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!
swexpertacademy.com
가로, 세로, 대각선의 값을 각각 구해서 max 값을 갱신한다.
100 * 100의 배열만 주어지기 때문에 벡터 값을 미리 100 * 100으로 설정해놓는다. 아니면 segment error 가 뜬다..
#include<iostream>
#include <vector>
#include <algorithm>
using namespace std;
int main(int argc, char** argv)
{
    int test_case;
    int T = 10;
    for (test_case = 1; test_case <= T; ++test_case)
    {
        int cnt;
        cin >> cnt;
        vector<vector<int>> v(100,vector<int>(100));
        int max_sum = 0;
        for (int i = 0; i < 100; i++) {
            for (int j = 0; j < 100; j++) {
                int x;
                cin >> x;
                v[i][j] = x;
            }
        }
        //우선 가로로 더해서 ans에 넣기
        for (int i = 0; i < 100; i++) {
            int sum = 0;
            for (int j = 0; j < 100; j++) {
                sum += v[i][j];
            }
            max_sum = max(max_sum, sum);
        }
        //세로로 더해서 ans에 넣기
        for (int i = 0; i < 100; i++) {
            int sum = 0;
            for (int j = 0; j < 100; j++) {
                sum += v[j][i];
            }
            max_sum = max(max_sum, sum);
        }
        //대각선은 어떻게 구하지?
        int ansSum = 0;
        for (int i = 0; i < 100; i++) {
            ansSum += v[i][i];
        }
        max_sum = max(max_sum, ansSum);
        int answerSum = 0;
        for (int i = 0; i < 100; i++) {
            answerSum += v[i][99 - i];
        }
        max_sum = max(max_sum, answerSum);
        cout << "#" << cnt << " " << max_sum << endl;
    }
    return 0;//정상종료시 반드시 0을 리턴해야합니다.
}'SWEA' 카테고리의 다른 글
| [SWEA/c++] 2805. 농작물 수확하기 (0) | 2024.11.09 | 
|---|---|
| [SWEA/c++] 1240. [S/W 문제해결 응용] 1일차 - 단순 2진 암호코드 (0) | 2024.11.08 | 
| [SWEA/c++] 1208. [S/W 문제해결 기본] 1일차 - Flatten (0) | 2024.10.17 | 
| [SWEA/c++] 1206. [S/W 문제해결 기본] 1일차 (2) | 2024.10.05 |