알고리즘 문제(2)

김혁준·2023년 4월 5일
0

python

목록 보기
9/15

문제 : 가위는 2 바위는 0 보는 5로 표현합니다. 가위 바위 보를 내는 순서대로 나타낸 문자열 rsp가 매개변수로 주어질 때, rsp에 저장된 가위 바위 보를 모두 이기는 경우를 순서대로 나타낸 문자열을 return하도록 solution 함수를 완성해보세요.

  1. 직관적으로 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를 넣고 리스트를 문자열로 바꾸었다.
여기서 딕셔너리를 활용하면 코드를 더 줄일 수 있다는 생각이 들었다!

  1. 딕셔너리 활용
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로 감싸서 추가해주었다!

결론 : 딕셔너리를 활용하면 코드길이가 많이 줄어든다

0개의 댓글

관련 채용 정보