반응형

9498번 문제 : 시험 성적

https://www.acmicpc.net/problem/9498


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <iostream>
 
using namespace std;
 
int main()
{
    int score;
    cin >> score;
 
    if(score<=100 && score>=90)
        cout<<"A"<<endl;
    else if((score<90 && score>=80))
        cout<<"B"<<endl;
    else if((score<80 && score>=70))
        cout<<"C"<<endl;
    else if((score<70 && score>=60))
        cout<<"D"<<endl;
    else
        cout<<"F"<<endl;
 
 
    return 0;
}
cs



10817번 문제 : 세 수

https://www.acmicpc.net/problem/10817


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <iostream>
#include <vector>
#include <algorithm>
 
using namespace std;
 
int main()
{
    int a,b,c;
    cin>>a>>b>>c;
 
    vector<int> v;
 
    v.push_back(a);
    v.push_back(b);
    v.push_back(c);
 
    sort(v.begin(), v.end());
 
    cout<< v.at(1)<<endl;
 
    return 0;
}
cs


메모:

-STL 사용하지 않고 단순 비교연산자로 풀수 있음: 세수이기때문에 속도면에서 더 빠를수도?


10871번 문제 : X보다 작은 수

https://www.acmicpc.net/problem/10871


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
#include <iostream>
#include <vector>
#include <algorithm>
 
using namespace std;
 
int main()
{
    int a,b;
    cin>>a>>b;
 
    vector<int> v;
 
    while(a>0)
    {
        int num;
        cin>>num;
        if(num<b)
            v.push_back(num);
        a--;
    }
 
    for(int i=0; i<v.size(); ++i)
    {
        cout<<v.at(i)<<" ";
    }
    
    return 0;
}
cs


메모:

-vector안에 값모두 출력할떄 auto 키워드사용해서 출력가능

1
2
3
4
for(auto i: v)
{
    cout<<i<<" ";
}
cs


1546번 문제 : 평균

https://www.acmicpc.net/problem/1546


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
31
32
33
34
35
36
37
38
39
40
#include <iostream>
#include <vector>
#include <algorithm>
 
using namespace std;
 
int main()
{
    int a;
    cin>>a;
 
    vector<float> v;
 
    while(a>0)
    {
        float num;
        cin>>num;
        v.push_back(num);
        a--;
    }
    sort(v.begin(), v.end());
 
    for(int i=0; i<v.size(); i++)
    {
        v.at(i) = v.at(i) / v.at(v.size()-1* 100;
    }
 
    float sum = 0;
    
    for(int i=0; i<v.size(); i++)
    {
        sum += v.at(i);
    }
 
    float mean = sum / v.size();
    
    cout<< mean <<endl;
 
    return 0;
}
cs


4344번 문제 : 평균은 넘겠지 

https://www.acmicpc.net/problem/4344


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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
#include <iostream>
#include <vector>
#include <algorithm>
#include <math.h>
 
using namespace std;
 
float GetMean(vector<float> v)
{
    float sum = 0;
    for (int i = 0; i<v.size(); i++)
        sum += v.at(i);
 
    float mean = sum / v.size();
    return mean;
}
 
 
int main()
{
    int a;
    cin >> a;
 
    vector<float> answer;
 
    while (a>0)
    {
        int b;
        cin >> b;
        vector<float> v;
        v.clear();
        while (b>0)
        {
            float num;
            cin >> num;
            v.push_back(num);
            b--;
        }
 
        int num = 0;
        float mean = GetMean(v);
        for (int i = 0; i<v.size(); i++)
        {
            if (v.at(i)> mean)
                num++;
        }
 
        answer.push_back((float)num / v.size() * 100);
 
        a--;
    }
 
    cout.setf(ios::fixed);
    cout.precision(3);
 
    for (int i = 0; i<answer.size(); i++)
    {
        float result = round(answer.at(i)*1000/ 1000;
        cout << result << "%" << endl;
    }
 
    return 0;
}
cs

메모:
-소수점 지정
1
2
    cout.setf(ios::fixed);
    cout.precision(3);
cs

-반올림의 경우는 <math.h>의 round()함수를 사용하여 구할 수 있음




1110번 문제 : 더하기 사이클

https://www.acmicpc.net/problem/1110


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
31
32
33
34
35
36
37
#include <iostream>
 
using namespace std;
 
int main()
{
    int initialNum;
    int counter = 0;
    cin >> initialNum;
 
    if (initialNum < 10)
    {
        initialNum = initialNum * 10;    
    }
 
    int temp = initialNum;
    int newNum1 = 0;
    int newNum2 = 0;
    int finalnum = 0;
 
    while (initialNum != finalnum )
    {
        newNum1 = temp / 10 + temp % 10;
        newNum1 = newNum1 % 10;
        newNum2 = temp % 10;
        finalnum = newNum2 * 10 + newNum1;
        temp = finalnum;
        counter++;
    }
 
    if (initialNum == 0)
        counter = 1;
 
    cout << counter << endl;
 
    return 0;
}
cs


메모:

- input값이 0일때 주의!

반응형

'C++ Algorithm > 백준 알고리즘 문제 풀이' 카테고리의 다른 글

1차원 배열 사용하기  (0) 2018.11.27
함수 사용하기  (0) 2018.11.18
for문 사용해보기  (0) 2018.11.07
사칙연산 도전하기  (0) 2018.11.07
입/출력 받아보기  (0) 2018.11.06

+ Recent posts