코딩테스트 \파이썬\자바/위니브

[위니브][20] Q1. 자격증명

익명의 신디 2025. 5. 1. 22:16

 

 

Python Algorithm Best20 | WENIV

왕좌에 앉으려는 자! 자격을 증명하라! 알고리즘 문제 풀이를 통해 파이와 썬이 숨겨둔 모든 알고리즘을 해독할 수 있는 알고리즘 7원석을 얻고, 알고리즘 왕좌를 쟁취해 보세요!

pyalgo.co.kr

https://pyalgo.co.kr/?page=1

자격 증명

1. 문제 설명

제왕의 문

왕좌에 앉으려는 자! 자격을 증명하라!

알고리즘 왕좌에 앉으려는 자는 자격을 증명해야 합니다. 만약 이 테스트를 '스스로' 통과하지 못한다면, 기본 문법을 다시 공부하고 와야 합니다. 앞으로 이보다 쉬운 문제는 없으니까요.

파이와 썬은 모든 알고리즘을 해독할 수 있는 알고리즘 7원석을 세계 어딘가에 숨겨두었다 공표하였습니다. 험난한 시련을 딛고 일어선 자만 이 시험을 통과할 수 있도록 설계되었습니다. 그가 남긴 문자는 아래와 같습니다.

자격을 얻으려는 자! 이곳으로 향하라!  

"  + +-+ -+-  " 
"  ++ -- +-+  " 
"  ++-+ -+ -  " 
"  + ++-+ -+  "  

해(1)와 달(0), Code의 세상 안으로!(En-Coding)

코딩의 제왕 파이와 썬

주어진 문자열을 1과 0으로 바꾸고 아스키코드표 안에 문자로 바꾸세요.


2. 제한 사항

  • 65 ≤ 주어진 숫자 ≤ 122
  • 문자열은 +, -, 공백 외에는 주어지지 않습니다.
  • 각각의 문자열은 1차원 리스트로 주어집니다.
  • 공백은 주어질 수도 있고, 주어지지 않을 수도 있습니다.

3. 입출력 예

입력 출력

[' + - - + - + - ', ' + + + - + - + ', ' + + - + + + - '] 'Jun’
[' + + + - - + + ', ' + + + - + - - ', '++----+', '+++ --+ -', '+++-+ - -'] 'start’
[' + + - - - - + ', ' + + - + + - - ', '+ +-- +++ ', ' ++- ++++'] 'algo’

4. 입출력 설명

  • +는 1로 -는 0으로 변경되어 '  + - - + - + -  '는 1001010이 됩니다. 이 숫자는 10진수로 바꾸었을 때 74로 아스키코드표로 보면 대문자 J가 됩니다. 이와 같은 원리로 나머지 2개를 문자로 바꿔 조합하면 'Jun'이 됩니다.

 

 

5. 풀이

python

def solution(data):
    sum = ""
    for i in range(len(data)):
        s = data[i]
        s = s.replace('+', '1')
        s = s.replace('-', '0')
        s = s.replace(' ', '')
        decimal = int(s, 2)       # 2진수 문자열을 10진수로 변환
        ascii_char = chr(decimal) # 10진수를 아스키 문자로 변환
        sum += ascii_char
    return sum

print(solution([' + - - + - + - ', ' + + + - + - + ', ' + + - + + + - ']));