Coding Test/딩코딩코 파이썬 코딩테스트
알고리즘과 친해지기 (2)
서린이1
2025. 2. 2. 04:10
컴퓨터는 숫자밖에 저장하지 못하기에, ASCII 코드 개념이 등장
- ASCII (American Standard Code for Information Interchange) : 7비트를 사용하고, 암호화되지 않은 키로코드를 사용
문자 : ASCII 코드 예시
- A : 65, a : 97
문자('a')-> ASCII 코드로 변환
- print(ord('a'))
- ASCII 코드(97) -> 문자로 변환
def find_alphabet_occurrence_array(string):
alphabet_occurrence_array = [0] * 26
for char in string:
if not char.isalpha():
continue arr_index = char - ord('a')
alphabet_occurrence_array[arr_index] += 1
return alphabet_occurrence_array
아스키/문자 변환 함수를 이용한 풀이
- ord('char') / chr(num)
# 최빈값 중, 사전순으로 가장 첫번 째 값을 찾기
s = "hello my name is dingcodingco"
def find_alphabet_occurrence_array(string):
# 알파벳 갯수만큼 배열을 생성
alphabet_occurrence_array = [0] * 26
for char in string:
# 알파벳이 아니면 continue 처리
if not char.isalpha():
continue
# a의 아스키 코드 값을 빼서 arr_index를 구함
arr_index = ord(char) - ord('a')
# 인덱스에 해당하는 값을 1 만큼 증가
alphabet_occurrence_array[arr_index] += 1
# 최대값인 것들 중 맨 처음 값(키값)을 취하고 아스키 코드 값을 더한다.
max_index = [k for k, v in enumerate(alphabet_occurrence_array) if v == max(alphabet_occurrence_array)][0] + ord('a')
# 아스키 코드를 문자로 변환
return chr(max_index)
print(find_alphabet_occurrence_array(s))
# 최빈값을 모두 찾기
s = "hello my name is dingcodingco"
def find_alphabet_occurrence_array(string):
alphabet_occurrence_array = [0] * 26
for char in string:
if not char.isalpha():
continue
arr_index = ord(char) - ord('a')
alphabet_occurrence_array[arr_index] += 1
# 최빈값을 모두 구하여 딕셔너리에 담는다.
max_list = {chr(k + ord('a')) : v for k, v in enumerate(alphabet_occurrence_array) if v == max(alphabet_occurrence_array)}
# 딕셔너리에 담긴 키(v)와 v에 해당하는 값을 찾는다.
for k, v in enumerate(max_list):
print(f'{v} : {max_list[v]}')
find_alphabet_occurrence_array(s)