CodingTest Exam/[C++] Algorithm Study

20. 가위 바위 보 (it 취업을 위한 알고리즘 문제풀이 입문 (with C/C++) : 코딩테스트 대비) ★☆☆☆☆

HongongHB 2023. 7. 23. 04:10

#include<stdio.h>

int main(){
	int n;
	scanf("%d", &n);
	
	int a[n], b[n];
	for(int i = 0; i < n; i++)
		scanf("%d", &a[i]);
	for(int i = 0; i < n; i++)
		scanf("%d", &b[i]);
		
	for(int i = 0; i < n; i++)
	{
		switch(a[i] - b[i])
		{
			case 0:
				printf("%s", "D");
				break;
			case -1:
				printf("%s", "B");
				break;
			case 1:
				printf("%s", "A");
				break;
			case 2:
				printf("%s", "B");
				break;
			case -2:
				printf("%s", "A");
				break;
		}
	}
	
	return 0;
}

1. 나는 A와 B가 이긴 상황을 고려해서 코드를 작성했는데, 생각해보면 A가 이기는 상황만 고려하고 이기지 않는다면 비기거나 B가 이긴 상황이 된다.

 

수정코드

#include<stdio.h>

int main(){
	int n;
	scanf("%d", &n);
	
	int a[n], b[n];
	for(int i = 0; i < n; i++)
		scanf("%d", &a[i]);
	for(int i = 0; i < n; i++)
		scanf("%d", &b[i]);
		
	for(int i = 0; i < n; i++)
	{
		if(a[i] == b[i]) printf("D\n");
		else if(a[i] - b[i] == 1) printf("A\n");
		else if(a[i] - b[i] == -2) printf("A\n");
		else printf("B\n");
	}
	
	return 0;
}