새소식

⌨️ Algorithms/백준

[Python] 백준 1864번_문어 숫자

2023. 6. 19. 19:12

  • -

https://www.acmicpc.net/problem/1864

 

1864번: 문어 숫자

해류가 매우 느리고 바닥을 기어다니는 생물이 적은 바다 밑바닥에서만 발견되는 잔물결 무늬의 정체는 오랫동안 해양학자들에게 수수께끼였다. 하지만 최근의 연구 성과는 동물 언어학 분야

www.acmicpc.net

 

  • 각 기호와 대응하는 숫자는 다음과 같음
    • -는 0에 대응
    • \는 1에 대응
    • (는 2에 대응
    • @는 3에 대응
    • ?는 4에 대응
    • '>'는 5에 대응
    • &는 6에 대응
    • %는 7에 대응
    • /는 -1에 대응
  • 문어의 수 체계는 8진법에 기반
    • (@&는 2 × 8**2 + 3 × 8 + 6 = 158
    • ?/--는 4 × (83) + −1 × (82) + 0 × 8 + 0 = 1984
    • /(\는 −1 × 8**2 + 2 × 8 + 1 = −47
  • 당신에게 주어진 문제는 문어 숫자를 입력 받아 십진수로 나타내는 것
  • 입력
    • 한 줄에 하나씩 문어 숫자가 입력으로 주어짐
    • 각 숫자는 최소 한 개, 최대 여덟 개의 문어 숫자 기호로 이루어져있음
    • 입력으로 '#'이 들어오면 입력을 종료
  • 출력
    • 입력 받은 문어 숫자에 대응하는 십진수를 한 줄에 하나씩 출력
  • 시간 제한: 1초
  • 메모리 제한: 128 MB

 

"""
입출력 예시)

(@&
?/--
/(\
?
#
    -> 158
       1984
       -47
       4
"""

 

 

## 의사코드 ##

# 입력으로 '#'이 들어오면 입력을 종료

# '\' 입력 -> "\\"


# dic에는 string의 순서 그대로 들어가야 하고, 8진법에는 순서 거꾸로 들어가야 함
# res = 0
# for i in range(len(string)):
#     res += dic[string[i]] * (8**(len(string)-i-1))

 

 

 

 

dic = {'-':0, "\\":1, "(":2, "@":3, "?":4, ">":5, "&":6, "%":7, "/":-1}
while True:
    string = input()
    if string == '#':
        break
    res = 0
    for i in range(len(string)):
        res += dic[string[i]] * (8**(len(string)-i-1))
    print(res)

 

 

 

 

 

 

https://velog.io/@semi_kimm/Python-%ED%8A%B9%EC%88%98%EB%AC%B8%EC%9E%90-%EC%B6%9C%EB%A0%A5

 

[Python] 특수문자 출력하기

\, ", ' 를 출력하기 위해서는 해당 문자 앞에 \ (백슬래시)를 붙여서 입력한다.

velog.io

 

https://velog.io/@chloee/%EB%B0%B1%EC%A4%80-1864-%EB%AC%B8%EC%96%B4-%EC%88%AB%EC%9E%90

 

백준 1864 문어 숫자

draft 2021-02-03https://www.acmicpc.net/problem/1864두 가지 점에 유의해야 한다:특정 조건이 나올 때까지, 주어지지 않은 횟수만큼을 반복하기while을 활용해보자. while True:로 반복하고, break를 이용해

velog.io

 

 

Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다!