본문 바로가기
알고리즘 설명

파이썬의 문자를 숫자로, 숫자를 문자로 바꾸기

by 다빈치코딩 2023. 11. 20.

목차

    반응형

    파이썬을 사용하다보면 가끔 문자를 숫자로, 숫자를 문자로 바꿔주고 싶은 경우가 생깁니다. 이럴때 문자를 숫자로 바꿔주는 방법에 대해 알아보겠습니다. 문자를 숫자로 나타낸 표를 보통 아스키(ASCII) 코드라고 합니다. 아스키코드의 약자는 다음과 같습니다.

    ASCII (American Standard Code for Information Interchange, 미국 정보 교환 표준 부호)

     

    아스키코드는 컴퓨터가 나오기 이전 모스 부호 전송기에서 사용하던 통신 방법입니다. a라는 문자를 숫자로 바꿔준 뒤 그 신호를 전달하고 다시 그 숫자를 문자 a로 바꿔주어 정보를 주고받던 시절에 사용하던 방식입니다.

    이런 아스키 코드를 지금은 사용할 일이 없지만 알고리즘 문제를 풀다보면 문자를 숫자로 바꿔줘야 하는 테크닉이 필요할 때 사용을 합니다.

    사실 C언어나 자바등에서는 따로 함수를 알 필요가 없이 문자를 숫자로, 숫자를 문자로 바꿔주면 바로 아스키코드값으로 변환 됩니다. 하지만 파이썬에서는 그냥 문자를 숫자로 바꿔주기 위해 문자를 int로 바꿔주면 바로 에러가 발생합니다.

    ord 함수와 chr 함수

    C언어나 자바와는 다르게 파이썬에서 문자를 숫자로, 숫자를 문자로 바꿔주기 위해서는 ord 함수와 chr 함수를 알아야 합니다. ord 는 ordinal의 약자로 문자를 유니코드값으로 바꿔주는 역할을 합니다. 앞에서 언급한 아스키코드의 확장버전이 유니코드로 보통 ord는 아스키코드값을 바꿔주는데 사용한다고 말을 합니다. 반대로 chr 함수는 숫자를 유니코드 문자로 바꿔주는 역할을 합니다.

    ord, chr 함수 사용하기

    숫자를 문자로 바꿔주는 방법에 대해 알아보겠습니다.

    print(ord('a')) # 97
    

    소문자 a를 ord 함수를 사용해서 숫자로 바꿔주면 97이라는 결과를 얻을 수 있습니다.

    print(chr(97)) # a
    

    반대로 97이라는 숫자를 chr 함수를 사용해서 바꿔주면 a라는 결과를 얻을 수 있습니다.

    응용하기

    그럼 이렇게 문자를 숫자로 바꾸고, 숫자를 문자로 바꿔주어서 무엇을 할 수 있을까요? 바로 문자를 리스트에 매핑하여 저장이 가능합니다. 아래 문제가 바로 문자를 숫자로 바꿔주는 응용이 사용 됩니다.

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

     

    10808번: 알파벳 개수

    단어에 포함되어 있는 a의 개수, b의 개수, …, z의 개수를 공백으로 구분해서 출력한다.

    www.acmicpc.net

    그럼 다음 포스트를 통해 직접 어떻게 응용할 수 있는지 알아보겠습니다.

    위 문제를 풀어본 뒤 아래 링크를 확인 부탁 드립니다.

    https://davincicoding.co.kr/53

     

    [백준 10808] 알파벳 개수

    문제 출처 : https://www.acmicpc.net/problem/10808 10808번: 알파벳 개수 단어에 포함되어 있는 a의 개수, b의 개수, …, z의 개수를 공백으로 구분해서 출력한다. www.acmicpc.net 이 문제는 어려운 문제가 아니지

    davincicoding.co.kr

     

    반응형

    '알고리즘 설명' 카테고리의 다른 글

    파이썬 음수의 나머지 연산  (0) 2024.03.11
    2차원 배열 회전하기  (0) 2024.01.24
    최소공통조상(LCA)  (0) 2023.10.09
    [알고리즘]Merge Sort  (2) 2023.09.26
    LIS 란?  (0) 2023.09.21