*문제의 저작권은 SW Expert에 있습니다.
swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV5PjKXKALcDFAUq
SW Expert Academy
SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!
swexpertacademy.com
[ 문 제 ]
A와 B가 가위바위보를 하였다.
가위는 1, 바위는 2, 보는 3으로 표현되며 A와 B가 무엇을 냈는지 입력으로 주어진다.
A와 B중에 누가 이겼는지 판별해보자. 단, 비기는 경우는 없다.
[ 입 력 ]
입력으로 A와 B가 무엇을 냈는지 빈 칸을 사이로 주어진다.
[ 출 력 ]
A가 이기면 A, B가 이기면 B를 출력한다.
[ 전체코드 ]
A, B = map(int, input().split())
xyz = {1:"가위", 2:"바위", 3:"보"}
if xyz[A] == "가위" and xyz[B] == "바위":
print("B")
elif xyz[A] == "가위" and xyz[B] == "보":
print("A")
elif xyz[A] == "바위" and xyz[B] == "가위":
print("A")
elif xyz[A] == "바위" and xyz[B] == "보":
print("B")
elif xyz[A] == "보" and xyz[B] == "가위":
print("B")
else:
print("A")
#######################################################################################
접근 방법에 대한 모든 경우의 수에 대해서 처리를 하다보니 코드가 너무 길어졌다...
더 간단하게 할 수 있는 방법은 A가 이기는 경우의 수만 xyz = {} 딕셔너리 형태로 만든 후
if ~ else 로 출력하면 된다.
[ 코드 최적화 ]
A, B = map(int, input().split())
xyz = {1:3, 2:1, 3:2}
if xyz[A] == B:
print("A")
else:
print("B")
'Study > Algorithm 문제풀이' 카테고리의 다른 글
[SW Expert Academy] 2027. 대각선 출력하기(using python) (0) | 2021.02.01 |
---|---|
[SW Expert Academy] 2019. 더블더블(using python) (0) | 2021.02.01 |
[SW Expert Academy] 1933. 간단한 N의 약수(using python) (0) | 2021.02.01 |
[SW Expert Academy] 1938. 아주 간단한 계산기(using python) (0) | 2021.01.31 |
[SW Expert Academy] 2025. N줄 덧셈(using python) (0) | 2021.01.31 |