Algorithm 풀이/SW Expert Academy
[SWEA] 1936. 1대1 가위바위보_python
yeguu
2022. 7. 13. 22:54
https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV5PjKXKALcDFAUq
SW Expert Academy
SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!
swexpertacademy.com
* 문제의 저작권은 SW Expert Academy에 있습니다.
1. 문제
A와 B가 가위바위보를 하였다.
가위는 1, 바위는 2, 보는 3으로 표현되며 A와 B가 무엇을 냈는지 입력으로 주어진다.
A와 BB 중에 누가 이겼는지 판별해보자. 단, 비기는 경우는 없다.
[입력]
입력으로 A와 B가 무엇을 냈는지 빈칸을 사이로 주어진다.
[출력]
A가 이기면 A, B가 이기면 B를 출력한다.

2. 내 풀이
play = int(input())
A = play[0]
B = play[-1]
if A == 1 and B == 3:
print("A")
elif A == 2 and B == 1:
print("A")
elif A == 3 and B == 2:
print("A")
if B == 1 and A == 3:
print("B")
elif B == 2 and A == 1:
print("B")
else:
print("B")
-> 결론부터 말하자면 실행시간 초과로 fail이 떴다. 사실 이 문제가 내 첫 번째 알고리즘 문제다. 시간제한이 있는 것도 이번에 처음 알았다. 이를 해결하기 위해서는 코드를 짧게 작성해야 하고, if문의 길이를 줄여야 한다. 고민하다가 다른 분의 코드를 보고 문제를 해결하게 되었다.
3. 다른 사람의 풀이
A, B = map(int, input().split())
play = {1:3, 2:1, 3:2}
if play[A] == B:
print("A")
else:
print("B")
-> 와.. 이렇게 짧게 줄일 수 있다니.. 솔직히 map은 처음 본 함수이지만 split과 딕셔너리는 알고 있었다. 확실히 알고 있는 것과 사용하는 것은 차이가 있다. 알고 있는 것에서 그치지 말고 활용할 수 있는 사람이 되자. 알고리즘 문제를 더 많이 풀어서 다양한 풀이를 체화하자. 꾸준히 알고리즘 공부를 하자!!!!!