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

 

10820번: 문자열 분석

문자열 N개가 주어진다. 이때, 문자열에 포함되어 있는 소문자, 대문자, 숫자, 공백의 개수를 구하는 프로그램을 작성하시오. 각 문자열은 알파벳 소문자, 대문자, 숫자, 공백으로만 이루어져 있

www.acmicpc.net

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