본문 바로가기
백준 C언어/silver

백준 2822 점수계산 C언어_230118

by boyo-ee 2023. 1. 18.

실버라서 겁먹은 문제지만 어렵지 않았다.

숫자도 몇 개 없어서 반복문을 맘껏 써도 돼서 좋은 문제였다 하하

 

 

문제를 풀면서 느낀 거지만 swap함수는 저렇게 define으로 사전 정의를 해두면 문제 풀기 훨씬 간편해진다.

문제는 간단히 a배열을 입력받으면서 동일한 값을 b배열에 넣어두고 b배열만 크기순으로 정렬하여

a에서의 위치를 출력해 주었다.

중간에 5개의 합을 먼저 출력해주어야 하여 별도 반복문을 통해 출력해 주었다.

#include <stdio.h>
#define swap(x,y) {int z=x;x=y;y=z;}
int main(){
	int a[10],b[10];
	int sum=0;
	for(int i=1;i<=8;i++){
		scanf("%d",&a[i]);
		b[i]=a[i];
	}
	for(int i=1;i<=8;i++){
		for(int j=i+1;j<=8;j++){
			if(b[i]<b[j]) swap(b[i],b[j]);
		}
	}
	for(int j=1;j<=5;j++){
				sum+=b[j];
	}
	printf("%d\n",sum);
	
	for(int i=1;i<=8;i++){
		for(int j=1;j<=5;j++){
			if(b[j]==a[i]) {
				printf("%d ",i);
		}
	}
}
	return 0;
}

댓글