백준(BOJ) 문제 풀이

백준 11654번 문제(아스키 코드) 파이썬(Python) 풀이 [로밍맨]

로밍맨 2021. 9. 2. 10:28
728x90
반응형

문제 링크

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

 

11654번: 아스키 코드

알파벳 소문자, 대문자, 숫자 0-9중 하나가 주어졌을 때, 주어진 글자의 아스키 코드값을 출력하는 프로그램을 작성하시오.

www.acmicpc.net

 

정답 코드는 아래와 같습니다.

1
2
= input()
print(ord(c))
cs

 

프로그래머(=개발자)라면 아스키 코드가 무엇인지 알아야 한다고 생각합니다.

프로그래머의 입장에서 아스키 코드를 간단하게 표현하자면, "알파벳과 주요 기호에 대한 코드" 라고 할 수 있습니다.

아스키 코드가 어떻게 만들어지게 되었는지 간단하게 상상을 해보면 어떤 의미를 지니는지 이해할 수 있습니다.

 

컴퓨터가 처음 개발된 이후에 사람들은 컴퓨터에서 문자(알파벳)도 나타내고 싶었을 것입니다.

그런데 컴퓨터는 숫자밖에 처리를 못하므로 어떻게 문자를 나타낼 수 있을지 고민하였을 것이고,

그 방법으로 어떤 표를 만들게 됩니다.

0 -> a

1 -> b

2 -> c

....

이런식으로 각 숫자가 특정한 문자에 1:1 대응하도록 한 것이죠.

 

728x90

 

실생활에서 우리도 자주 사용하는 방법입니다. 학번, 군번, 사번, 우편번호 등이 대표적이죠.(모든 정보를 나열하기 번거롭기 때문에 숫자로 표현)

알파벳이 총 26개이고, 대소문자 구별을 위해서는 52개의 숫자가 필요합니다.

그런데 곰곰이 생각을 해보니, 글을 쓸 때에 알파벳만 이용하는게 아니라는 것을 알 수 있습니다.

느낌표(!), 콤마(,), 마침표(.) 뿐만 아니라 띄어쓰기(공백), 줄바꿈(개행) 등도 필요합니다.

그래서 이러한 문자들까지 포함하여 저마다 64개 또는 128개의 항목이 있는 표를 만들었습니다.(아무래도 2의 제곱수의 크기로 표를 만들었을 것입니다)

 

사람들마다 각자 만들었기 때문에 어떤 표에서는 a 가 0부터 시작하지만, 어떤 표에서는 A 가 0부터 시작하기도 할 것입니다. 물론 65부터 시작할 수도 있을 것이고요. 다시 말해서 상호 호환이 되지 않았다는 것입니다.

이런 경우에 가장 좋은 방법은 서로 인정하는 표준을 만들고 이것을 지키는 것입니다. 그리하여 ASCII 코드가 탄생하게 된 것입니다.

아스키 코드는 "어떤 문자의 코드 값이 얼마이다" 를 나타내는 standard table 입니다. 참고로 아스키 코드에서는 A의 코드값은 65입니다.

 

파이썬에서는 ord 함수에서 문자를 받으면 이에 대응하는 아스키 코드 값을 리턴해주기 때문에 이를 활용하여 간단하게 이 문제를 풀 수 있습니다.

 

풀이는 아래 영상을 참고 바랍니다.

https://www.youtube.com/watch?v=PZIKMih8c6A 

 

저작권 라이선스: CC BY (출처만 표시하면 자유롭게 이용 가능)

728x90
반응형