250x250
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 |
Tags
- sw expert academy
- 원서
- 프로그래머스
- swexpertacademy
- the midnight library
- nightroutine
- 알고리즘
- 코테
- 백준
- 직무면접
- sw expert
- SQL
- 원서읽자
- English
- MySQL
- englishbook
- 원서읽기
- PyQt
- 쉬운 알고리즘 문제
- 코테 준비
- 삼성
- BFS
- dfs
- STUDYENGLISH
- 알고리즘 문제
- 완전탐색
- 코테 대비
- D4
- 코딩테스트
- readingbook
Archives
- Today
- Total
시나브로
1859. 백만 장자 프로젝트 본문
728x90
처음 이 문제를 접했을 때, D2라는 수준을 감안하여 그냥 탐색해도 될까?라는 의문을 가지고 풀어 보았다. 운이 좋게도 이 솔류션으로도 해결이 가능했다. 하지만, 시간복잡도가 높기에 최적화를 해야될 것이다.
Solution
최고값을 안다면, 그 값이 나오기 전까지 계속해서 구매한다면, 1만큼이라도 이익이 발생한다.
- 전체 값에서 최고값을 찾는다
- 최고값까지 모든 순간에 구매를 한다
- 최고값에 도착하면, 이후의 최고값을 다시 탐색한다
- 탐색한 결과값으로 최고값을 갱신하고 위의 과정을 배열이 끝날 때까지 반복한다
Key Point
입력을 보면 배열의 최고 길이는 1000000이고, 최대 매매가는 10000입니다. 이렇게만 보아도 int의 범위를 넘어갑니다. 그렇기에 sum(answer)의 자료형을 long long로 변경해줘야합니다.
#include<iostream>
#include<stdio.h>
#include<algorithm>
#include<vector>
using namespace std;
vector<int> list;
vector<int> vec;
int main(void) {
freopen("inp.inp", "r", stdin);
freopen("out.out", "w", stdout);
int tc = 0;
cin >> tc;
for (int p = 0; p < tc; p++) {
list.clear();
int amount = 0;
cin >> amount;
int box;
int max_point = 0;
int max = 0;
for (int i = 0; i < amount; i++) {
cin >> box;
list.push_back(box);
if (max < box) {
max = box;
max_point = i;
}
}
int sum = 0;
for (int i = 0; i < amount; i++) {
if (i==max_point) {
max = 0;
for (int j = i+1; j < amount; j++) {
if (max < list[j]) {
max = list[j];
max_point = j;
}
}
}else{
sum += (max - list[i]);
}
}
cout << "#" << p + 1 << " " << sum << endl;
}
return 0;
}
https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV5LrsUaDxcDFAXc
728x90
'알고리즘 > SW Expert Academy' 카테고리의 다른 글
9780. 외계인 침공 (0) | 2020.05.25 |
---|---|
9778. 카드 게임 (0) | 2020.05.19 |
[D5] 9015. 배열의 분할 (0) | 2020.03.18 |
[D3] 9229. 한빈이와 Spot Mart (0) | 2020.03.10 |
[D3] 9280. 진용이네 주차타워 (0) | 2020.03.09 |
Comments