[프로그래머스][파이썬] 가위 바위 보 - 해시 (Level 0)

뻥튀기아이스크림·2025년 3월 16일
1
post-thumbnail

◽ 문제 출처

https://school.programmers.co.kr/learn/courses/30/lessons/120839

◽ 문제

◽ 입력 & 출력

◽ 내 풀이

def solution(rsp):
    answer = ''
    
    for game in rsp:
        if game == '2':
            answer += '0'
        elif game == '0':
            answer += '5'
        else:
            answer += '2'
            
    return answer
  • rsp 를 순회하며 각 게임마다 이기는 경우의 수를 문자열에 더하여 재생성했다.

◽ 다른 사람 풀이

def solution(rsp):
    d = {'0':'5','2':'0','5':'2'}
    return ''.join(d[i] for i in rsp)
  • 딕셔너리 초기화할 때 헷갈리는것만 제외하면 이기는 경우를 저장해놓고 꺼내쓰기만 하면 된다.

◽ 더 나아가기

  • 딕셔너리에서 값을 꺼내쓰는 시간복잡도가 O(1) 이니까 확실히 효율적이다.
  • 문자열이 길어질수록 아래 코드가 더 좋아보인다.



피드백은 언제나 환영입니다 :)

profile
성장하고 싶은 개발자

0개의 댓글