21번 문제   

 

 


    내가 풀이한 답   

  문제는 상당히 길었는데 읽고 보면 조건문 몇 개만 추가해주면 되겠다는 감이 왔다. A의 총점 변수와 B의 총점 변수 그리고 비겼을 때 라운드를 제외하고 승부가 판가름이 난 final 변수를 이용해서 코드를 짜보았다. 

#include <stdio.h>

int a[10];
int b[10];
int main(int argc, char** argv) {
	//freopen("input.txt", "rt", stdin);
	
	int i, sumA=0, sumB=0, final;
	
	for(i=0; i<10; i++){
		scanf("%d", &a[i]);
	}
	
	for(i=0; i<10; i++){
		scanf("%d", &b[i]);
	}
	
	for(i=0; i<10; i++){
		if(a[i] > b[i]) {
			sumA+=3;
			final = i;
		}
		else if(a[i] < b[i]) {
			sumB+=3;
			final = i;
		}
		else {
			sumA+=1;
			sumB+=1;
		}
	}
	
	printf("%d %d\n", sumA, sumB);
	
	if(sumA > sumB) printf("%c", 'A');
	else if(sumA < sumB) printf("%c", 'B');
	else {
		if(a[final] == b[final]) printf("%c", 'D');
		else {
			if(a[final] > b[final]) printf("%c", 'A');
			else printf("%c", 'B');
		}
	}
	
	return 0;
}

 

 결과는 통과하였다.

 

 

 

    사이트의 답안   

#include<stdio.h>			
int main(){
	//freopen("input.txt", "rt", stdin);
	int i, A[10], B[10], as=0, bs=0, lw=0;
	for(i=0; i<10; i++){
		scanf("%d", &A[i]);
	}
	for(i=0; i<10; i++){
		scanf("%d", &B[i]);
	}
	for(i=0; i<10; i++){
		if(A[i]>B[i]){
			as=as+3;
			lw=1;
		}
		else if(A[i]<B[i]){
			bs=bs+3;
			lw=2;
		}
		else{
			as+=1;
			bs+=1;
		}
	}
    
	printf("%d %d\n", as, bs);
    
	if(as==bs){
		if(lw==0) printf("D\n");
		else if(lw==1) printf("A\n");
		else printf("B\n");
	}
	else if(as>bs) printf("A\n");
	else printf("B\n");			
	return 0;
}

 

  사이트의 답과 비슷한 논리인 것을 확인했다. 

 

'알고리즘 & 자료구조 > 기초 다잡기' 카테고리의 다른 글

23. 연속 부분 증가수열  (0) 2020.09.08
22. 온도의 최대값  (0) 2020.09.07
20. 가위 바위 보  (0) 2020.09.07
19. 분노 유발자  (0) 2020.09.07
18. 층간소음  (0) 2020.09.07