Problem Solving/boj.kr (Python)
[BOJ / 파이썬] 1157 : 단어 공부
hoiiiii
2022. 2. 26. 22:06
문제 : https://www.acmicpc.net/problem/1157
1157번: 단어 공부
알파벳 대소문자로 된 단어가 주어지면, 이 단어에서 가장 많이 사용된 알파벳이 무엇인지 알아내는 프로그램을 작성하시오. 단, 대문자와 소문자를 구분하지 않는다.
www.acmicpc.net
Sol )
1. 길이 26의 cnt 배열 선언 및 0으로 초기화
2. 문자열을 돌면서 cnt [문자 - "A"의 아스키코드] 값을 1씩 증가 ( cnt [0] = a의 횟수 )
3. cnt배열의 최댓값( 가장 많이 출력된 문자의 횟수)을 저장
4. 만약 최대값이 두 개 이상의 문자일 경우 "?" 출력
5. 최대값이 한 개일 경우 해당 문자 출력
소스코드 )
s = input().upper()
cnt_arr = [0 for _ in range(26)]
for char in s:
cnt_arr[ord(char)-ord("A")] += 1
max_num = max(cnt_arr)
result = False
for i in range(len(cnt_arr)):
if cnt_arr[i] == max_num:
if result:
result = "?"
break
result = chr(ord("A")+i)
print(result)