이렇게 경우의 수가 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의 값을 불러오도록 만드는 것입니다.
SW Expert Academy
SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!
swexpertacademy.com
'알고리즘 문제 풀기 > 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 |