문제 링크
https://www.acmicpc.net/problem/11654
정답 코드는 아래와 같습니다.
1
2
|
c = input()
print(ord(c))
|
cs |
프로그래머(=개발자)라면 아스키 코드가 무엇인지 알아야 한다고 생각합니다.
프로그래머의 입장에서 아스키 코드를 간단하게 표현하자면, "알파벳과 주요 기호에 대한 코드" 라고 할 수 있습니다.
아스키 코드가 어떻게 만들어지게 되었는지 간단하게 상상을 해보면 어떤 의미를 지니는지 이해할 수 있습니다.
컴퓨터가 처음 개발된 이후에 사람들은 컴퓨터에서 문자(알파벳)도 나타내고 싶었을 것입니다.
그런데 컴퓨터는 숫자밖에 처리를 못하므로 어떻게 문자를 나타낼 수 있을지 고민하였을 것이고,
그 방법으로 어떤 표를 만들게 됩니다.
0 -> a
1 -> b
2 -> c
....
이런식으로 각 숫자가 특정한 문자에 1:1 대응하도록 한 것이죠.
실생활에서 우리도 자주 사용하는 방법입니다. 학번, 군번, 사번, 우편번호 등이 대표적이죠.(모든 정보를 나열하기 번거롭기 때문에 숫자로 표현)
알파벳이 총 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 (출처만 표시하면 자유롭게 이용 가능)
'백준(BOJ) 문제 풀이' 카테고리의 다른 글
백준 11720번 문제(숫자의 합) 파이썬(Python) 풀이 [로밍맨] (0) | 2021.09.08 |
---|---|
백준 11659번 문제(구간 합 구하기 4) 파이썬(Python) 풀이 [로밍맨] (0) | 2021.09.04 |
[Deprecated] 백준 11650번 문제(좌표 정렬하기) 파이썬(Python) 풀이 [로밍맨] (0) | 2021.08.30 |
백준 11066번 문제(파일 합치기) 파이썬(Python) 풀이 [로밍맨] (0) | 2021.08.23 |
백준 10998번 문제(AXB) 파이썬(Python) 풀이 [로밍맨] (0) | 2021.08.20 |