문제 출처:
https://www.acmicpc.net/problem/16112
16112번: 5차 전직
메이플스토리 뉴비 키파가 드디어 레벨 200을 달성하고 5차 전직이라는 시스템을 이용해 캐릭터를 더욱 강력하게 만들려고 합니다. 5차 전직을 하려면 먼저 퀘스트를 통해 아케인스톤이라는 아
www.acmicpc.net

이 문제를 풀기 위해서는 sort가 필요하며, 가장 큰 수를 얻기 위해서는 제일 작은 수를 먼저 사용하여 아케인스톤을 만드는게 중요하다.
//P_16112
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int n, k;
// find_Sum_Experience_Point
int main(int argc, const char * argv[]) {
ios::sync_with_stdio();
cin.tie(NULL);
cout.tie(NULL);
cin >> n >> k ;
vector<int> v;
for(int i = 0 ; i < n ; i ++){
int tmp;
scanf("%d", &tmp);
v.push_back(tmp);
}
// 0번째는 0
// 1번쨰는 제일 작은 수를 제외한 수의 합
// 2번째는 제일 작은 수와 두번쨰 수를 제외한 수의 합
// ... 이러한 것들이 k개 존재
sort(v.begin(), v.end());
long long int sum = 0 ;
int i = 0 ;
// v.at(j) * i /(3*10^5*10*8/)
for(int j = 0 ; j < n ; j ++){
sum += (long long int)v.at(j) * (long long int)i ;
if (i < k)
i++;
}
printf("%lld\n", sum) ;
return 0;
}
이 문제를 해결하기 위해서 array를 사용하고자 했지만 시간 초과를 계속 유발하기에 별로 사용해보지 않은 vector를 사용하기로 했다.
해당 내용은 Github에서도 보실 수 있습니다.
https://github.com/gurcks8989/CodingTest/blob/master/BackJoon/HPS/P16112_5th_changeJob.cpp
GitHub - gurcks8989/CodingTest: BackJoon_study_with_c++
BackJoon_study_with_c++. Contribute to gurcks8989/CodingTest development by creating an account on GitHub.
github.com
훈수 및 조언은 언제든지 환영입니다.
문제 출처:
https://www.acmicpc.net/problem/16112
16112번: 5차 전직
메이플스토리 뉴비 키파가 드디어 레벨 200을 달성하고 5차 전직이라는 시스템을 이용해 캐릭터를 더욱 강력하게 만들려고 합니다. 5차 전직을 하려면 먼저 퀘스트를 통해 아케인스톤이라는 아
www.acmicpc.net

이 문제를 풀기 위해서는 sort가 필요하며, 가장 큰 수를 얻기 위해서는 제일 작은 수를 먼저 사용하여 아케인스톤을 만드는게 중요하다.
//P_16112
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int n, k;
// find_Sum_Experience_Point
int main(int argc, const char * argv[]) {
ios::sync_with_stdio();
cin.tie(NULL);
cout.tie(NULL);
cin >> n >> k ;
vector<int> v;
for(int i = 0 ; i < n ; i ++){
int tmp;
scanf("%d", &tmp);
v.push_back(tmp);
}
// 0번째는 0
// 1번쨰는 제일 작은 수를 제외한 수의 합
// 2번째는 제일 작은 수와 두번쨰 수를 제외한 수의 합
// ... 이러한 것들이 k개 존재
sort(v.begin(), v.end());
long long int sum = 0 ;
int i = 0 ;
// v.at(j) * i /(3*10^5*10*8/)
for(int j = 0 ; j < n ; j ++){
sum += (long long int)v.at(j) * (long long int)i ;
if (i < k)
i++;
}
printf("%lld\n", sum) ;
return 0;
}
이 문제를 해결하기 위해서 array를 사용하고자 했지만 시간 초과를 계속 유발하기에 별로 사용해보지 않은 vector를 사용하기로 했다.
해당 내용은 Github에서도 보실 수 있습니다.
https://github.com/gurcks8989/CodingTest/blob/master/BackJoon/HPS/P16112_5th_changeJob.cpp
GitHub - gurcks8989/CodingTest: BackJoon_study_with_c++
BackJoon_study_with_c++. Contribute to gurcks8989/CodingTest development by creating an account on GitHub.
github.com
훈수 및 조언은 언제든지 환영입니다.