반응형
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 |