ASCII Table - 아스키 코드표
2022. 4. 11. 21:50ㆍ알고리즘/문제풀이
ASCII Table - 아스키 코드표
백준의 문자열 문제들을 보다가 한번 쯤 정리가 필요할 듯 싶어 적게 되었다.
문자열의 문제들을 보면 문자열 데이터 형식을 유지하여 푸는 방법도 존재하지만 몇몇 경우는 아스키코드라는 방법을 통해 풀이도 가능하다.
아스키 코드란?
컴퓨터는 0과 1로 움직이며 이때 문자도 숫자로 기억을 한다. 이때 문자와 숫자의 경우 여러가지 대응 방법이 있는데 통상 사용되는 방법은 아스키 코드이다. 아스키 코드는 0부터 127까지의 숫자에 각각의 해당되는 문자를 대응시키는 인코딩 방식이다.
기존의 아스키 코드에 추가적으로 숫자를 더해 사용하는 방법이 있었지만 이 방법은 os마다 정의한 부분이 틀려서 대중적으로 알려진 아스키 코드만 보려고 한다.
아스키 코드를 알면 추후에 알고리즘 문제 풀이 및 프로그래밍 언어에서 문자열 함수 or 파일 함수를 다룰 때 도움이 된다.
- ( 아스키 코드 ) 48 ~ 57 : ( 대응 문자 ) 0 ~ 9
- ( 아스키 코드 ) 65 ~ 90 : ( 대응 문자 ) A ~ Z
- ( 아스키 코드 ) 97 ~ 122 : ( 대응 문자 ) a ~ z
아스키 코드 변환(python)
다양한 언어에서 아스키 코드를 활용할 수 있는 메서드들이 있지만 파이썬의 경우에서 두 가지 메서드를 소개하려한다.
- ord(문자) : 메소드 안의 문자를 값으로 받아 아스키 코드를 반환해준다
- chr(숫자) : 숫자에 맞는 값을 아스키 코드에서 찾아서 문자로 반환해준다.
# ord(문자)
print(ord('A'))
print(ord('b'))
# chr(숫자)
print(chr(45))
print(chr(109))
보시다시피 두개의 메서드들은 해당값들을 반환을 하며, 이 때 문자의 경우 abc같은 문자 뿐만 아니라 특수 문자도 포함이 된다는 것을 알수가 있다. 자주 사용이 되는 아스키 코드는 a = 97, A = 65 등이 있으며 이 경우는 문제에서도 자주 사용이 된다.
예시 문제
https://www.acmicpc.net/problem/10820
while True:
try:
s = list(input())
l, u, n, b = 0, 0, 0, 0
for i in range(len(s)):
if 97 <= ord(s[i]) <= 122:
l += 1
elif 65 <= ord(s[i]) <= 90:
u += 1
elif 48 <= ord(s[i]) <= 57:
n += 1
elif ord(s[i]) == 32:
b += 1
print(l, u, n, b)
except EOFError :
break
'알고리즘 > 문제풀이' 카테고리의 다른 글
[Python] 백준 알고리즘 14425번 문자열 집합 (0) | 2022.05.04 |
---|---|
[Python] 백준 알고리즘 13549번 - 숨바꼭질 3 (0) | 2022.04.12 |
[Python] 백준 알고리즘 4963번 - 섬의 개수 (0) | 2022.03.23 |
[Python] 백준 알고리즘 10866번 - 덱 (0) | 2022.03.21 |
[Python] 백준 알고리즘 7576번 - 토마토 (0) | 2022.03.07 |