이렇게 경우의 수가 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의 값을 불러오도록 만드는 것입니다.
'알고리즘 문제 풀기 > SWEA' 카테고리의 다른 글
SWEA 4861. 회문 - 파이썬 (0) | 2021.02.19 |
---|---|
SWEA 4836. 색칠하기 2차원 배열(파이썬) (0) | 2021.02.16 |
SWEA 4839. 이진탐색 알고리즘 - 파이썬 (0) | 2021.02.16 |
[SWEA 1206] View 조망권 구하기 (0) | 2021.02.09 |
[SWEA 1948] 날짜 계산기 2가지 풀이 (0) | 2021.02.09 |