★ 국민대학교 경시대회는 반드시 vector를 알아야 합니다.
★ https://edukoi.tistory.com/73?category=841618 미리 학습하고 예제 문제 풀어보세요 어렵지 않습니다
[ 제5회 국민대학교 알고리즘대회 예제1번 ]
※ vector 사용법만 알면 쉽게 풀수 있는 문제입니다. 이런 문제 시험에 안나오겠죠?
[ 제5회 국민대학교 알고리즘대회 예제1번 참고 소스 ]
#include <vector>
#include <iostream>
using namespace std;
vector<int> solution(vector<int> arr)
{
vector<int> answer;
for(int i=0;i<arr.size();i++)
{
if(arr[i]!=arr[i+1])
{
answer.push_back(arr[i]);
}
}
return answer;
}
[ 제5회 국민대학교 알고리즘대회 예제2번 ]
[ 제5회 국민대학교 알고리즘대회 예제2번 참고 소스 ]
※ 풀이방법은 다양합니다. 아래 소스는 참고용으로 보고 꼭 스스로 풀어보세요
#include<vector>
#include <cstdio>
#include<iostream>
using namespace std;
int solution(int no, vector<int> works)
{
int answer = 0;
int k=0;
for(int c=0;c<works.size();c++)
{
for(int e=0;e<works.size()-1;e++)
{
if(works[e]<works[e+1])
{
swap(works[e],works[e+1]);
}
}
}
do{
if(works[0]<works[1])
{
k=1;
}
do{
if(k!=0 && k!=works.size()-1 && works[k]<=works[0])
{
k++;
}
else
{
break;
}
}while(1);
if(k==works.size()-1 && works[k]<=works[0])
{
k=0;
}
works[k]--;
no--;
}while(no!=0);
for(int c=0;c<works.size();c++)
{
if(works[c]>0)
answer = answer + works[c]*works[c];
}
return answer;
}
'알고리즘 경시대회' 카테고리의 다른 글
7. 2018년도 제1회 경희대학교 전국고등학생 알고리즘 경진대회 문제 (0) | 2020.07.23 |
---|---|
6. 2018년 제2회 국민대학교 알고리대회 예제문제 (0) | 2020.07.20 |
4. 제2회 경희대학교 전국 고등학생 알고리즘 경진대회 기출문제 4 ~6번 (0) | 2020.07.15 |
3. 제2회 경희대학교 전국 고등학생 알고리즘 경진대회 기출문제 1 ~3번 (0) | 2020.07.13 |