https://www.acmicpc.net/problem/1371
문제해석
입력된 글중 가장 많이 나온 알파벳을 찾아 출력하는 프로그램을 작성하는 문제이다
코드
word = [0 for i in range(26)]
while True:
try:
inStr = str(input())
for s in inStr:
if s.islower():
word[ord(s)-97] += 1
except EOFError:
break
for i in range(26):
if word[i] == max(word):
print(chr(i + 97), end='')
문제풀이
문제의 조건에 입력 문자의 수를 정해놓지 않았다. 따라서 EOF를 활용하여 문제를 해결해야 한다. 우선 문제의 입력 조건에 알파벳 소문자만 오고 공백이나 줄바꿈은 무시하여 문자를 개수를 세아려야 한다. 따라서 입력값이 소문자일때만 계산해줘 공백이나 줄바꿈은 카운트하지 않는다. word라는 list형으로 총 26개의 공간을 만들고 아스키 코드값을 이용하여 문자를 숫자로 바꾸어 알파벳 순서로 인덱스를 조정해 각각의 알파벳 수를 세아린다. 마지막에 max를 활용하여 가장 많이 카운트 된 인덱스를 아스키코드 값으로 다시 문자로 바꾸어 출력한다.
'Koala - 11기 > 기초 알고리즘 스터디' 카테고리의 다른 글
[백준/python] 3449번: 해밍 거리 (0) | 2023.07.30 |
---|---|
[백준/python3] 2309번: 일곱 난쟁이 (0) | 2023.07.30 |
[백준/python3] 10825번 : 국영수 (0) | 2023.07.29 |
[백준/C++] 2947번: 나무 조각 (0) | 2023.07.28 |
[백준/Python] 12719번: 비밀번호 찾기 (0) | 2023.07.23 |