[SuNiNaTaS(써니나타스)] 18번 문제 풀이
오늘은 18번 문제를 풀기로 했다. 문제를 들어가 보면 아래와 같은 화면인데, 느낌상 아스키 코드일 것 같다.
아스키 코드란?
American Standard Code for Information Interchange 의 준말로 ASCII 라고 한다.
다시 말해, 영문 알파벳을 사용하는 대표적인 문자 인코딩이다.
그래서 아스크 코드를 문자로 바꿔주는 파이썬 코드를 짜 봤다. 사실 아스키 코드가 몇개 없으면 수작업으로 진행하려고 했으나, 양이 너무 많은 관계로 코드를 짜봤다.
아스키 코드를 문자로 바꾸는 코드는 쉽다.
ascii = [86, 71, 57, 107, 89, 88, 107, 103, 97, 88,77, 103, 89, 83, 66, 110, 98, 50, 57, 107, 73, 71, 82, 104, 101, 83, 52, 103, 86, 71, 104, 108, 73, 69, 70, 49, 100, 71, 104, 76, 90, 88, 107, 103,
97, 88, 77, 103, 86, 109, 86, 121, 101, 86, 90, 108, 99, 110, 108, 85, 98, 50, 53, 110, 86, 71, 57, 117, 90, 48, 100, 49, 99, 109, 107, 104]
result = []
for i in ascii:
result += chr(i)
result = "".join(result)
print(result)
간단하게 소스코드를 해석해보자면
1. ascii 란 배열에 18번 문제의 숫자들을 넣는다.
2. result 란 배열을 만들어준다.(아스키코드가 문자로 변환된 값을 넣어주기 위해 만들었다.)
3. for문을 ascii 배열만큼 돌려준다.
4. chr(숫자) : 숫자에 맞는 아스키 코드를 반환해준다.
5. join 함수를 이용해서 문자를 문자열로 바꿔준다.
6. print 함수를 이용해서 문자열로 바뀐 값을 출력한다.
파이썬으로 코드를 돌리면 아래와 같은 값을 출력하게 된다.
만약 join 함수를 이용하지 않으면 아래와 같은 값이 출력된다.
이제 이 값이 키값인 줄 알았지만 여기서 'Decode'를 한번 더 취해줘야 한다. 그래서 써니나타스 자체에 있는 툴을 이용하기로 했다.
(사실 아스키 코드를 문자로 변환한 값이 키값인 줄 알았지만 아니라고 해서 'Decode'를 한 것이다.)
바로 Base64 Decode를 이용하면 원하는 키값을 찾을 수 있다.
키값을 넣으면 아래와 같이 문제가 풀린 것을 알 수 있다!
물론 점수도 오르고 말이다!
*해당 블로그는 개인적인 공부와 정보 공유를 위해 만들었습니다.
'공부 > Suninatas' 카테고리의 다른 글
[SuNiNaTaS(써니나타스)] 10번 문제 풀이 (0) | 2020.03.23 |
---|---|
[SuNiNaTaS(써니나타스)] 21번 문제 풀이 (0) | 2020.03.21 |
[SuNiNaTaS(써니나타스)] 15번 문제 풀이 (1) | 2020.03.19 |
[SuNiNaTaS(써니나타스)] 16번 문제 풀이 (8) | 2020.03.18 |
[SuNiNaTaS(써니나타스)] 3번 문제 풀이 (2) | 2020.03.16 |