말 그대로 문제 자체를 구현하면 되는 알고리즘이다
예제 문제
string dopa = "umzunsik";
Q1. 앞에서부터 3개의 문자열을 출력하라
Q2. 해당 문자열을 거꾸로 해서 출력하라.
Q3. 해당 문자열 끝에 "umzunsik"이란 문자열을 추가하라.
[출처] [알고리즘 강의] 1주차. 시간복잡도, 빅오표기법, 공간복잡도, 누적합, 구현|작성자 큰돌
#include <iostream>
using namespace std;
string dopa = "umzunsik";
int main()
{
//substr은 0번째부터 시작해서 입력받은 index까지 문자를 뽑아주는 함수이다
cout << dopa.substr(3) << endl;
//reverse 함수는 특정 문자를 입력받은 범위에 해당되는 문자들을 거꾸로 변환하는 함수이다
reverse(dopa.begin(), dopa.end());
cout << dopa << endl;
dopa = dopa + " " + dopa;
cout << dopa << endl;
}
오름차순과 평균 값
숫자로 이뤄진 배열이 주어졌을 때, 배열의 요소들을 오름차순으로 정렬하고,
배열의 평균값을 계산하시오
입력
첫 번째 줄에 배열의 크기 N(1 <= N <= 100)이 주어진다.
두 번째 줄에 N개의 정수가 주어진다.
각 정수는 -1000이상 1000이하이다
출력
첫 번째 줄에 정렬된 배열에 출력하고, 두 번째 줄에 배열의 평균 값을 출력하시오.
평균 값은 소숫점 두 번째 자리까지 출력하시오
입력예시
5
3 1 4 1 5
예시출력
1 1 3 4 5
2.80
#include <iostream>
#include <algorithm>
#include <iomanip>
#include <vector>
using namespace std;
int n;
double a;
vector<int> arr;
int main()
{
cin >> n;
arr.resize(n, 0);
for (int i = 0; i < n; i++)
cin >> arr[i];
sort(arr.begin(),arr.end());
for (int i = 0; i < n; i++)
{
cout << arr[i]<<" ";
a += arr[i];
}
cout << endl;
cout << fixed << setprecision(2) << a / n << endl;
}