1. (10818번) 1차원 배열 단계 - 일반 풀이
#include <iostream>
using namespace std;
int main()
{
int N;
cin >> N;
int *array;
array = new int[N];
int Min, Max;
for(int i = 0; i < N; i++)
{
cin >> array[i];
}
Min = array[0];
Max = array[0];
for(int i = 0; i < N; i++)
{
if(Min >= array[i])
Min = array[i];
else if(Max <= array[i])
Max = array[i];
}
cout << Min << " " << Max << endl;
}
1. (10818번) 1차원 배열 단계 - 정렬 풀이
#include <iostream>
#include <algorithm>
using namespace std;
int main()
{
int N;
cin >> N;
int array[N];
for(int i = 0; i < N; i++)
{
cin >> array[i];
}
sort(array, array+N);
cout << array[0] << " " << array[N-1] << " ";
}
2. (2562번) 최댓값
#include <iostream>
using namespace std;
int main()
{
int num[9];
int max = 0;
int index = 0;
for(int i = 0; i<9; i++)
{
cin >> num[i];
if(max < num[i])
{
max = num[i];
index = i;
}
}
cout << max << endl << index+1;
}
3. (2577번) 숫자의 개수
#include <iostream>
using namespace std;
int main()
{
int a, b, c;
cin >> a >> b >> c;
int result = a*b*c;
int arr[10] = {0};
while(result != 0)
{
arr[result % 10] += 1;
result /= 10;
}
for(int i = 0; i<10; i++)
{
cout << arr[i] << endl;
}
}
4. (3052번) 나머지 : 정렬 시 같은 나머지값들이 뭉치게 되므로 쉽게 풀이 가능
풀이 해설
- 나머지값을 가진 배열 생성 및 정렬
- 정렬 후 순서대로 두개씩 비교 : 만약 같은 수가 나오면 카운트
- 전체 원소 - 카운트된 값
#include <iostream>
#include <algorithm>
using namespace std;
int main()
{
int n[10];
int arr[10];
int cnt = 0;
for(int i = 0; i < 10; i++)
{
cin >> n[i];
arr[i] = n[i]%42;
}
sort(arr, arr+10);
for(int i =0; i<9; i++)
{
if(arr[i] == arr[i+1])
cnt += 1;
}
cout << 10-cnt;
}
5. (1546번) 평균
#include <iostream>
#include <algorithm>
using namespace std;
int main()
{
int n;
cin >> n;
double score[n];
for(int i = 0; i < n; i++)
{
cin >> score[i];
}
sort(score, score+n);
double s[n]; // 조작된 점수
double sum;
for(int i = 0; i <n; i++)
{
score[i] = score[i]/score[n-1]*100;
sum += score[i];
}
cout << sum/n << " ";
}
6. (8958번) OX퀴즈
#include <iostream>
#include <string>
using namespace std;
int main()
{
int t;
cin >> t;
int sum, score;
for(int i =0; i<t; i++)
{
sum = 0;
score = 0;
string s;
cin >> s;
for(int j = 0; j<s.size(); j++)
{
char ans = s[j];
if(s[j] == 'O')
{
score += 1;
sum += score;
}
else
{
score = 0;
}
}
cout << sum << endl;
}
}
7. (4344번)평균은 넘겠지
#include <iostream>
using namespace std;
int main()
{
int c, n, cnt;
cin >> c;
int score[1000] = {0};
int sum;
int avg;
double answer;
for(int i = 0; i < c; i++)
{
avg = 0;
cnt = 0;
sum = 0;
cin >> n;
for(int j = 0; j < n; j++)
{
cin >> score[j];
sum += score[j];
}
avg = sum / n;
for(int j = 0; j < n; j++)
{
if(score[j] > avg)
cnt += 1;
}
answer = (double)cnt / n * 100;
cout << fixed;
cout.precision(3);
cout << answer << "%" << endl;
}
}
728x90
반응형
'알고리즘' 카테고리의 다른 글
[C++] 데이터 구조(1) - Dynamic arrays(vector, string) (0) | 2021.06.12 |
---|---|
[C++] 정렬 (0) | 2021.06.06 |
그래프 탐색 알고리즘 (0) | 2021.06.04 |
[C++] 기초 문법 (0) | 2021.06.03 |
[C++][BOJ/백준][단계별로 풀어보기] 3. for문 (0) | 2021.05.28 |