[Baekjoon] - 5단계 : 1차원 배열
1. 최소, 최대
#include <stdio.h>
int main(){
int n;
scanf("%d",&n);
int arr[n];
for(int i=0;i<n;i++){
scanf("%d",&arr[i]);
}
int max;
int min;
max = min = arr[0];
for(int i=0;i<n;i++){
if(arr[i] < min) min = arr[i];
if(arr[i] > max) max = arr[i];
}
printf("%d %d",min,max);
}
2. 최댓값
#include <stdio.h>
int main(){
int arr[9];
for(int i=0;i<9;i++) scanf("%d",&arr[i]);
int max = 0;
int index = 0;
for(int i=0;i<9;i++){
if(max < arr[i]){
max =arr[i];
index = i+1;
}
}
printf("%d\n%d",max,index);
}
3. 숫자의 개수
#include <stdio.h>
int main(){
int a,b,c;
int arr[10] = {};
scanf("%d",&a);
scanf("%d",&b);
scanf("%d",&c);
int mul = a*b*c;
while(mul != 0){
arr[mul%10]++;
mul /= 10;
}
for(int i=0;i<10;i++){
printf("%d\n",arr[i]);
}
}
4. 나머지
#include <stdio.h>
#include <stdbool.h>
int main(){
bool arr[42] = {};
int num;
for(int i=0;i<10;i++){
scanf("%d",&num);
arr[num%42]=true;
}
int count = 0;
for(int i=0;i<42;i++){
if(arr[i]) count++;
}
printf("%d",count);
}
5. 평균
#include <stdio.h>
int main(){
int n;
scanf("%d",&n);
double arr[n];
double max = 0;
for(int i=0;i<n;i++){
scanf("%lf",&arr[i]);
if(max < arr[i]) max = arr[i];
}
double sum = 0;
for(int i=0;i<n;i++){
arr[i] = (arr[i]/max)*100;
sum += arr[i];
}
printf("%.2lf", sum/(double)n);
}
6. OX퀴즈
#include <stdio.h>
#include <string.h>
int main(void) {
int n;
scanf("%d",&n);
for(int i=0;i<n;i++){
int count = 0;
int score = 0;
char correct[80];
scanf("%s",correct);
int len = strlen(correct);
for(int j=0;j<len;j++){
if(correct[j] == 'O') count++;
else count = 0;
score += count;
}
printf("%d\n",score);
}
return 0;
}
7. 평균은 넘겠지
#include <stdio.h>
int main(){
int testCase,n;
scanf("%d",&testCase);
for(int i=0;i<testCase;i++){
scanf("%d",&n);
double score[n];
double sum=0;
for(int j=0;j<n;j++){
scanf("%lf",&score[j]);
sum += score[j];
}
double avg = sum/(double)n;
double count = 0;
for(int j=0;j<n;j++){
if(score[j] > avg) count++;
}
printf("%.3f%%\n",count/(double)n*100);
}
}
요약
- 캐스팅을 잘해주거나 실수값을 잘 표현해야 오류가 없다.