문제 : 가위는 2 바위는 0 보는 5로 표현합니다. 가위 바위 보를 내는 순서대로 나타낸 문자열 rsp가 매개변수로 주어질 때, rsp에 저장된 가위 바위 보를 모두 이기는 경우를 순서대로 나타낸 문자열을 return하도록 solution 함수를 완성해보세요.
- 직관적으로 if문 이용해서 풀기.
def solution(rsp): answer_list=[] list_rsp = list(rsp) # ['2','0','5'] for i in list_rsp: if i == '2': answer_list.append('0') elif i == '0': answer_list.append('5') else: answer_list.append('2') answer = ''.join(answer_list) return answer
if문을 이용해서 2일때 0, 0일때 5, 나머지일때 2를 넣고 리스트를 문자열로 바꾸었다.
여기서 딕셔너리를 활용하면 코드를 더 줄일 수 있다는 생각이 들었다!
- 딕셔너리 활용
def solution(rsp): answer="" just_list=[5,0,0,0,0,2] for i in rsp: answer+=str(just_list[int(i)]) return answer
임의의 딕셔너리를 만들고 2일때 딕셔너리의 2번째 숫자를 넣는 식으로 바꾸었다. 리스트의 순서를 불러올때는 문자가 아니라 숫자가 들어가야 하므로 i를 int로 감싸고 정답이 문자열이므로 겉에 str로 감싸서 추가해주었다!
결론 : 딕셔너리를 활용하면 코드길이가 많이 줄어든다