티스토리 뷰
아스키 코드
문제
알파벳 소문자, 대문자, 숫자 0-9중 하나가 주어졌을 때, 주어진 글자의 아스키 코드값을 출력하는 프로그램을 작성하시오.
입력
알파벳 소문자, 대문자, 숫자 0-9 중 하나가 첫째 줄에 주어진다.
출력
입력으로 주어진 글자의 아스키 코드 값을 출력한다.
예제 입력 1
A
예제 출력 1
65
예제 입력 2
C
예제 출력 2
67
예제 입력 3
0
예제 출력 3
48
예제 입력 4
9
예제 출력 4
57
예제 입력 5
a
예제 출력 5
97
예제 입력 6
z
예제 출력 6
122
해설
아스키코드에 대한 이해와 scanf() 함수에 대해 알고 있다면 아주 간단한 문제이다. 아스키코드(ascii)는 아래의 테이블을 의미한다.
- 아스키코드에 대한 설명은 나무위키를 참고하길. 읽어 보고 이해되지 않는 부분이 있으면 댓글로 질문해 주세요.
주지하다시피 컴퓨터가 이해할 수 있는 수는 0과 1뿐이다. 우리가 컴퓨팅 과정에서 영어, 한글, 한자 등을 모두 쓸 수 있다고 해서 컴퓨터가 이런 문자를 모두 생각해서는 곤란하다. 컴퓨터는 이 모든 문자(열)을 이진 코드(0과 1의 조합으로 만들어진 문자열)로 변환하여 이해한다. 즉 이 변환을 위해 사용되는 테이블 중 하나가 바로 아스키코드인 것이다. 컴퓨팅이 활성화되던 초창기에 주로 사용된 테이블로 알파벳 대소문자, 아라비아숫자, 제어 문자로 구성되어 있다. 문제는 키보드로 입력받은 문자의 10진 아스키코드값을 출력하라고 요구하고 있다. 어떻게 하면 문자를 이 십진 코드로 바꿀 수 있을까?
scanf(), printf() 함수를 이용하면 간단히 해결된다. 다른 언어에서 콘솔 입출력을 담당하는 기본 함수들도 거의 유사하게 동작할 것이다. 우선 우리는 입력을 문자로 받아야 하기 때문에 아래와 같이 %c
를 이용하여 한 문자를 입력받는다.
scanf("%c", &ascii);
입력을 문자로 정확히 받았으니 이제 관건은 이를 아스키코드로 출력하는 것이다. 위의 표와 같이 처리할 수 있는 변환 함수를 만들 수도 있겠지만 이는 printf() 함수의 출력 서식을 이용하여 해결할 수 있다. 입력받은 문자를 숫자로 출력하라(%d\n
)고 지시하면 printf()는 해당 문자에 대응하는 아스키코드를 화면에 출력해 준다.
printf("%d\n", ascii);
글을 쓰다 보니 '이거 함수로 분류된 문제였나?' 하는 생각이 든다. 그렇다면 아스키코드 테이블을 이용해 변환 함수를 만들어야 하는 문제인 건가? 코드와 글을 다시 써야 한다는 생각에 짜증이 밀려드는 순간 떠올랐다. 이 문제는 문자열로 분류된 문제였다. 휴, 다행이다.
이 두 가지를 이용해서 코드를 완성하면 아래와 같다.
소스 코드: C
#include <stdio.h>
int main(int argc, char *argv[])
{
char ascii;
scanf("%c", &ascii);
printf("%d\n", ascii);
return 0;
}
'Python > 심사문제' 카테고리의 다른 글
백준(BAEKJOON): 알파벳 찾기(10809번) (0) | 2020.03.24 |
---|---|
백준(BAEKJOON): 숫자의 합(11720번) (0) | 2020.03.21 |
백준(BAEKJOON): 한수(1065번) (0) | 2020.03.19 |
백준(BAEKJOON): 셀프 넘버(4673번) (0) | 2020.03.18 |
백준(BAEKJOON): 평균은 넘겠지(4344번) (0) | 2020.03.12 |
- Total
- Today
- Yesterday
- 유래
- setText()
- 리찬규
- python3
- word
- BOJ
- C
- 어원
- QComboBox
- locallibrary
- baekjoon
- 리규찬
- QLineEdit
- QtDesigner
- Python
- PyQt5
- django
- judge
- NK
- Tistory
- Mac
- words
- MacOS
- books
- 북한말
- QGridLayout
- tips
- 소수
- QLabel
- 백준
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |