본문 바로가기

Study/Algorithm 문제풀이

[SW Expert Academy] 1936. 1 대 1 가위바위보(using python)

728x90
반응형

*문제의 저작권은 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(intinput().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(intinput().split())

 

xyz = {1:32:13:2}

 

if xyz[A] == B:

    print("A")

else:

    print("B")

 

 

728x90
반응형