201004 [S/W 문제해결 기본] 2일차 - Sum (C++) / 틀림
swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV13_BWKACUCFAYh&
SW Expert Academy
SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!
swexpertacademy.com
문제:
행 합이랑 열 합은 가로로 쭉 더하고, 세로로 쭉 더하고, 대각선은 i와 j의 인덱스가 같을 때 더하면 됩니다.
대각선 방향은 왼쪽에서 오른쪽이랑 오른쪽에서 왼쪽으로 2가지가 있습니다.
max 함수를 이용해서 네 값 중 제일 큰 값으로 갱신해서 답을 구했습니다.
github.com/decten/AlgorithmStudy/blob/master/Sum.cpp
코드:
대각선 방향에서 왼쪽->오른쪽은 위에서 부터 값을 더하고, 오른쪽 -> 왼쪽은 아래에서 부터 값을 더합니다.
왼쪽 -> 오른쪽은 둘의 인덱스가 같고, 오른쪽 -> 왼쪽은 둘의 합이 99입니다.
스택에 배열을 선언하니 크기가 넘쳐서 전역 변수로 선언 했습니다.
반복문 하나에 sum 계산을 다 넣으니 시간 초과가 돼서 대각선 방향끼리 반복문을 따로 뺐습니다.
이렇게 바꾸니 컴파일은 되는데 입력 받고 바로 더하는 형태라서 세로 방향으로 더해지지가 않아서 따로 빼고 대각선도 여기에 넣었습니다.
-----------------------------------------------------------------------------------------------------------------------------------
max 함수는 math가 아니라 algorithm 헤더에 있었습니다.
max 함수의 인자를 2개 초과로 주고 싶으면 배열 형태로 줘야 합니다.
답이 왜 크게 나오는지 모르겠습니다. 다른 정답 코드들이랑 논리가 똑같은데 이상하네요ㅠㅠ