Chlln's Code/C++ 알고리즘 코딩테스트
[알고리즘 코딩 테스트] Ch03 - 1 : 배열과 리스트 그리고 벡터
Chlln Vlln
2023. 3. 20. 15:46
문제 001. 숫자의 합 구하기
N개의 숫자가 공백 없이 쓰여 있다. 이 숫자를 모두 합해 출력하는 프로그램을 작성하시오.
- 입력
- 1번째 줄에 숫자의 개수 N(1 ≤ N ≤ 100), 2번째 줄에 숫자 N개가 공백 없이 주어진다.
- 출력
- 입력으로 주어진 숫자 N개의 합을 출력한다.
예제 입력 1 | 예제 출력 1 |
1 1 |
1 |
예제 입력 2 | 예제 출력 2 |
5 54321 |
15 |
#include <iostream>
using namespace std;
int main(void) {
int num, sum = 0;
string sNum;
cin >> num >> sNum;
for (int i = 0; i < num; i++)
sum += sNum[i] - '0'; // '0' = 48, '1' = 49, '2' = 50 ...
// '8' = 56, '9' = 57
cout << sum << endl;
return 0;
}
문제 002. 평균 구하기
세준이는 기말고사를 망쳤다. 그래서 점수를 조작해 집에 가져가기로 결심했다. 일단 세준이는 자기 점수 중 최댓값을 골랐다. 그런 다음 최댓값을 M이라 할 때 모든 점수를 점수 / M * 100으로 고쳤다. 예를 들어 세준이의 최고점이 70점, 수학 점수가 50점이라면 수학 점수는 50 / 70 * 100이므로 71.43점이다. 세준이의 성적을 이 방법으로 계산했을 때 새로운 평균을 구하는 프로그램을 작성하시오.
- 입력
- 1번째 줄에 시험을 본 과목의 개수 N이 주어진다. 해당 값은 1,000보다 작거나 같다. 2번째 줄에 세준이의 현재 성적이 주어진다. 해당 값은 100보다 작거나 같은, 음이 아닌 정수이고, 적어도 1개의 값은 100보다 크다.
- 출력
- 1번째 줄에 새로운 평균을 출력한다. 실제 정답과 출력값의 절대 오차 또는 상대 오차가 10^-2 이하이면 정답이다.
예제 입력 1 | 예제 출력 1 |
3 40 80 60 |
75.0 |
예제 입력 2 | 예제 출력 2 |
3 10 20 30 |
66.666667 |
#include <iostream>
using namespace std;
int main(void) {
int num, sum = 0, grade[1000], max = 0;
cin >> num;
for (int i = 0; i < num; i++) {
cin >> grade[i];
sum += grade[i];
}
for (int i = 0; i < num && max < grade[i]; i++)
max = grade[i];
double result = sum * static_cast<double>(100) / max / num;
cout << result << endl;
}