알고리즘 문제 풀기/SWEA

[SWEA 1936] 가위바위보 2가지 풀이

hibscus 2021. 2. 8. 23:59

 

 

 

이렇게 경우의 수가 6가지 밖에 나오지 않는 문제는 

 

그냥 고민도 없이 바로 if A ==1 일때,  A==2일때, A == 3일때 해서 풀곤 하는데

 

조금 더 짧게, 그리고 좀 더 스마트하게 쓸 수 있는 방법을 정리해보았습니다.

 

 

 

A, B = map(int, input().split())

# 비기는 경우는 생각하지 않기 때문에 이렇게도 가능함.
# A가 이기는 경우
if (A == 1 and B == 3) or (A == 2 and B == 1) or (A == 3 and B == 2) :
    print('A')
# B가 이기는 경우 
else:
    print('B')

 

 

# 가위, 바위, 보
      #   1  2  3
win = [0, 3, 1, 2]

if A == B:
    print('비김')
elif win[A] == B:
    print('A')
else:
    print('B')

  

win = [0, 3, 1, 2]는

A가 1일때 B가 3이면 이긴다.

A가 2일때 B가 1이면 이긴다.

A가 3일때 B가 2이면 이긴다.

를 리스트로 정렬해 놓은 것입니다.

 

A를 인덱스 값으로 사용하여 A가 이기는 B의 값을 불러오도록 만드는 것입니다.

 

 

 

 

 

swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV5PjKXKALcDFAUq&categoryId=AV5PjKXKALcDFAUq&categoryType=CODE

 

SW Expert Academy

SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!

swexpertacademy.com