20번 문제   

 

 

 

    내가 풀이한 답   

  흔한 가위 바위 보 게임이였고 가위 1, 바위 2, 보 3이라고 했을 때, 1 < 2, 2 < 3, 3 <1 그리고 무승부 총 4가지 경우에서 무승부를 따로 처리하고 3과 1만 반대로 처리하였다.

 

 명심하자 char 변수에 대입할 수 있는 것이 "A"가 아니라 'A'여야 한다는 것을 

#include <stdio.h>

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

 

 결과는 통과하였다.

 

 

 

    사이트의 답안   

#include<stdio.h>
int main(){
	freopen("input.txt", "rt", stdin);
	freopen("output.txt", "wt", stdout);
	int a[101], b[101], i, j, n, A=0, B=0;
	scanf("%d", &n);
	for(i=1; i<=n; i++){
		scanf("%d", &a[i]);
	}
	for(i=1; i<=n; i++){
		scanf("%d", &b[i]);
	}
	for(i=1; i<=n; i++){
		if(a[i]==b[i]) printf("D\n");
		else if(a[i]==1 && b[i]==3) printf("A\n");
		else if(a[i]==2 && b[i]==1) printf("A\n");
		else if(a[i]==3 && b[i]==2) printf("A\n");
		else printf("B\n");
	}
	return 0;
}

 

  사이트의 답은 A를 기준으로 생각을 하고 접근하였다. 따로 논리적으로 다를 것은 없었다.

 

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

22. 온도의 최대값  (0) 2020.09.07
21. 카드게임  (0) 2020.09.07
19. 분노 유발자  (0) 2020.09.07
18. 층간소음  (0) 2020.09.07
17. 선생님 퀴즈  (0) 2020.09.06