[BaekJoon] 11654번 : 아스키 코드 / 10809번: 알파벳 찾기 (Python)

🔔 배경지식 : 아스키코드

● 아스키 코드란?

(출처 나무위키)

아스키 코드는 1963년 미국 ANSI에서 표준화한 정보교환용 7비트 부호체계이다. 인쇄전신기(Teleprinter)를 통한 전신(통신)에서 사용되기 시작했고, 8비트 컴퓨터에서도 활용되어 오늘날 문자 인코딩의 근간을 이루게 된다.
000(0x00)부터 127(0x7F)까지 총 128개의 부호가 사용된다. 1바이트를 구성하는 8비트 중에서 7비트만 쓰도록 제정된 이유는, 나머지 1비트를 통신 에러 검출을 위한 용도로 비워두었기 때문이다. Parity Bit라고 해서, 7개의 비트 중 1의 개수가 홀수면 1, 짝수면 0으로 하는 식의 패리티 비트를 붙여서, 전송 도중 신호가 변질된 것을 수신측에서 검출해낼 수 있도록 하였다. 일종의 원시적인 CRC 체크섬이라고 할 수 있다.
영문 키보드로 입력할 수 있는 모든 기호들이 할당되어 있는 가장 기본적인 부호 체계이다. 매우 단순하고 간단하기 때문에 어느 시스템에서도 적용가능하다는 장점이 있다.

● 파이썬에서의 사용

파이썬에서 아스키코드를 문자로 변환, 문자를 아스키코드로 변환하기

1) ord()함수로 문자 -> 아스키코드 변환
2) chr()함수로 아스키코드 -> 문자 변환
3) 아스키코드 65~90은 알파벳 대문자 A~Z
4) 아스키코드 97~122는 알파벳 소문자 a~z

📌 Python 문자열 연습문제(1)


✏️ 문제

알파벳 소문자, 대문자, 숫자 0-9중 하나가 주어졌을 때, 주어진 글자의 아스키 코드값을 출력하는 프로그램을 작성하시오.

✏️ 입력

알파벳 소문자, 대문자, 숫자 0-9 중 하나가 첫째 줄에 주어진다.

✏️ 출력

입력으로 주어진 글자의 아스키 코드 값을 출력한다.


🔔 첫번째 시도(✔️)

S = input()
print(ord(S))

#comment
1. 너무나도 간단한 문제이다. 아스키코드의 개념만 있다면 바로 쓴다.


📌 Python 문자열 연습문제(3)


✏️ 문제

알파벳 소문자로만 이루어진 단어 S가 주어진다. 각각의 알파벳에 대해서, 단어에 포함되어 있는 경우에는 처음 등장하는 위치를, 포함되어 있지 않은 경우에는 -1을 출력하는 프로그램을 작성하시오.

✏️ 입력

첫째 줄에 단어 S가 주어진다. 단어의 길이는 100을 넘지 않으며, 알파벳 소문자로만 이루어져 있다.

✏️ 출력

각각의 알파벳에 대해서, a가 처음 등장하는 위치, b가 처음 등장하는 위치, ... z가 처음 등장하는 위치를 공백으로 구분해서 출력한다.
만약, 어떤 알파벳이 단어에 포함되어 있지 않다면 -1을 출력한다. 단어의 첫 번째 글자는 0번째 위치이고, 두 번째 글자는 1번째 위치이다.


🔔 첫번째 시도(✔️)

S = input()
alphabet = list(range(97,123))
for i in alphabet:
  print(S.find(chr(i)))

#comment
1. find 함수는 어떤 찾는 문자가 문자열 안에서 첫 번째에 위치한 순서를 숫자로 출력한다. 만일 찾는 문자가 문자열 안에 없는 경우에는 -1을 출력하는 함수이다.

좋은 웹페이지 즐겨찾기