Python/백준 (BOJ)

[BOJ][B2]문어 숫자 - 1864

ㅋㅋ! 2025. 8. 13. 13:00

 

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

 

문제 전문은 링크 참조

문제가공

  1. 특수 문자별로 숫자를 매핑한다.
  2. 변환된 숫자의 8진수를 10진수로 출력한다.

코드작성

  • 코드 내에서는 편하게 짜려고 문자열을 reverse하고 8진수의 제곱 수를 증가시켰는데,
  • 문자열을 뒤집지 않고 제곱 수를 감소시켜서 구현하는게 더 효율적일 듯 하다.
num ={'-':0,
      '\\':1,
      '(' :2,
      '@' :3,
      '?' :4,
      '>' :5,
      '&' :6,
      '%' :7,
      '/' :-1}
while True:
    s = input()
    if s == '#': break
    reverse = s[::-1]
    answer=0
    for idx, c in enumerate(reverse):
        answer += num[c] * (8 ** idx)
    print(answer)

'Python > 백준 (BOJ)' 카테고리의 다른 글

[BOJ][B2]애너그램 만들기 - 1919  (0) 2025.08.15
[BOJ][B2]좋은 자동차 번호판 - 1871  (0) 2025.08.14
[BOJ][B2]폭죽쇼- 1773  (3) 2025.08.12
[BOJ][B2]추론 - 1731  (0) 2025.08.11
[BOJ][B2]암호- 1718  (0) 2025.08.10