문제
1157번: 단어 공부
알파벳 대소문자로 된 단어가 주어지면, 이 단어에서 가장 많이 사용된 알파벳이 무엇인지 알아내는 프로그램을 작성하시오. 단, 대문자와 소문자를 구분하지 않는다.
www.acmicpc.net
알고리즘
- 알파벳 단어를 입력받을 때 모든 알파벳을 대문자로 받는다.
- collections 메서드에 Counter 함수를 통해 알파벳의 개수를 확인한다.
- 알파벳의 개수가 1개 이하라면 최대 개수의 알파벳을 출력한다.
- 알파벳의 개수가 2개 이상이라면 알파벳의 개수를 비교하여 출력한다.
코드
import sys
from collections import Counter
word = list(map(str, sys.stdin.readline().strip().upper())) # 입력을 대문자로 받는다.
word = Counter(word) # Counter 함수를 통해 알파벳의 개수를 확인
# word에 알파벳의 데이터가 2개 이상 있는지 확인한다.
if len(word.most_common(2)) < 2:
print(max(word))
else:
# 알파벳의 개수가 제일 많은 2개의 데이터를 확인
a, b = word.most_common(2)
# 2개의 알파벳의 개수가 같으면 "?" 출력
if a[1] == b[1]:
print("?")
# 다르다면 개수가 더 많은 알파벳을 출력
elif a[1] > b[1]:
print(a[0])
else:
print(b[0])
github
GitHub - junjange/CodingTest: 내가 푼 코딩 테스트 문제와 해결법
내가 푼 코딩 테스트 문제와 해결법. Contribute to junjange/CodingTest development by creating an account on GitHub.
github.com
'CodingTest > Baekjoon' 카테고리의 다른 글
[baekjoon] 백준 2941번(파이썬): 크로아티아 알파벳 (0) | 2021.12.21 |
---|---|
[baekjoon] 백준 1316번(파이썬): 그룹 단어 체커 (0) | 2021.12.20 |
[baekjoon] 백준 2675번(파이썬): 문자열 반복 (0) | 2021.12.18 |
[baekjoon] 백준 1152번(파이썬): 단어의 개수 (0) | 2021.12.17 |
[baekjoon] 백준 8958번(파이썬): OX퀴즈 (0) | 2021.12.16 |