https://swexpertacademy.com/main/solvingProblem/solvingProblem.do
SW Expert Academy
SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!
swexpertacademy.com
✏️ 싸피 준비 겸 SWEA 2, 3단계 풀기 시작!
1859. 백만 장자 프로젝트
매매가를 미리 알고 있다는 전제하에, 최댓값을 구해야 하는 문제.
✨ 거꾸로 계산하는 방식으로 풀었다.
1. 배열의 맨 끝 (오른쪽) 수를 MAX로 지정
2. 왼쪽 수가 더 클 경우 Max값을 갱신, 크지 않다면 result를 (Max - inp[i]) 최댓값 - 현재inp값으로 갱신
**주의할 것
- 입력값을 받은 배열 inp를 main문 안에다 선언하면 Runtime Error
- result값을 long long으로 선언해야 함 ( int는 값 범위 벗어나서 오답처리 됨)
#include <iostream>
using namespace std;
#define MAX 1000002
int inp[MAX]={0};
int main(int argc, char** argv)
{
int T;
cin >> T;
for(int t=0;t<T;t++){
int num;
cin >> num;
for(int i=0;i<num;i++) cin >> inp[i];
int result = 0;
int Max = inp[num-1]; // 맨 오른쪽 수 임시 Max지정
for(int i=num-1;i>=0;i--){
if(Max < inp[i]) Max = inp[i];
else result += Max - inp[i];
}
cout << "#" << t+1 << " " << result << "\n" ;
}
return 0;
}
'코딩테스트 연습 > SWEA' 카테고리의 다른 글
[SWEA] 1974. 스도쿠 검증 d2 (c++) (0) | 2022.05.23 |
---|---|
[SWEA] 1954. 달팽이 숫자 d2 (c++) (0) | 2022.05.23 |
[SWEA] 1204. [S/W 문제해결 기본] 1일차 - 최빈수 구하기 D2 (0) | 2022.05.23 |
[SWEA] 2005. 파스칼의 삼각형 D2 (c++) (0) | 2022.05.22 |
[SWEA] 1926. 간단한 369게임 D2 (c++) (0) | 2022.05.22 |