728x90
📌 문제
11654번: 아스키 코드
알파벳 소문자, 대문자, 숫자 0-9중 하나가 주어졌을 때, 주어진 글자의 아스키 코드값을 출력하는 프로그램을 작성하시오.
www.acmicpc.net
📌 처음 코드
# 11654 아스키 코드
import sys
input = sys.stdin.readline
n = input()
print(ord(n))
💡 풀이
- 입력 받을 값을 n에 담는다.
- 입력 받은 n을 아스키 코드로 변환해주는 함수 ord()를 통해 아스키 코드로 바꿔준 후 출력한다.
이론상 분명히 맞게 풀었는데 빌드 후 예제값을 입력하니 에러가 발생했다. 왜 발생했는지를 몰라서 이전에도 고민하는 데만 하루 가량 소모했던 문제여서 오늘은 꼭 해결하고 싶었다.
그러나 내 코드만 봐서는 도저히 어디가 문제인지 찾아낼 수가 없어서 해당 문제 풀이를 게시한 블로그를 참고했다.
참고한 블로그에서는 input()만을 사용해 입력값을 받아 아스키 코드로 변환 후 출력해주는 형태였다. 아무래도 습관적으로 사용하던 import sys 떄문에 발생한 문제인 것 같다. 그래서 import sys에 대해 레퍼런스를 찾아보기로 했다.
찾아보면 대체로 sys.stdin.readline()이 input()보다 입력 시간을 줄여준다는 말이 대부분이었는데, 이거 외에 사용하면 안되는 상황이라던가, 주의해야 할 사항 등은 따로 정리된 곳이 없어 정확한 이유를 찾을 수 없었다.
📌 수정 후 코드
# 11654 아스키 코드
n = input()
print(ord(n))
📌 정리
문제의 난이도 자체는 ord() 함수만 활용하면 금방 풀 수 있는 매우 쉬운 문제였으나, 생각보다 오랜 시간 난항을 겪었던 문제였다. 아무래도 파이썬 sys 모듈에 대해 구체적으로 알아봐야 할 것 같다.
적극적인 피드백은 언제나 환영입니다:)