반응형
문제
https://www.acmicpc.net/problem/1157
1157번: 단어 공부
알파벳 대소문자로 된 단어가 주어지면, 이 단어에서 가장 많이 사용된 알파벳이 무엇인지 알아내는 프로그램을 작성하시오. 단, 대문자와 소문자를 구분하지 않는다.
www.acmicpc.net
코드
word = input().upper()
wordli = list(set(word))
cnt = []
for i in wordli:
count = word.count
cnt.append(count(i))
if cnt.count(max(cnt)) > 1:
print("?")
else:
print(wordli[cnt.index(max(cnt))])
설명
우선 단어를 입력받아야 하는데 대소문자의 구분이 없다고 했으므로,
upper(대문자) 혹은 lower(소문자)를 통해서 하나의 문자로 통일시켜 준다.
이후 카운트를 하기 위해 중복을 제거한 문자 리스트를 하나 만들건데,
set을 통해서 중복이 없는 리스트로 생성이 가능하다.
cnt라는 카운트를 저장할 빈 리스트를 하나 만들어 주고,
카운트를 위한 반복문을 생성한다.
count 함수를 통해서 각 문자의 개수를 세주고 이를 cnt리스트에 넣어준다.
cnt의 max 값이 여러개이면 ?를 출력,
그렇지 않은 경우에는 index를 통해서 가장 많이 나온 문자를 출력한다.
반응형
'개발 연습장 > 백준 문제풀이' 카테고리의 다른 글
[파이썬, Python] 백준 2908: 상수 (0) | 2022.12.05 |
---|---|
[파이썬, Python] 백준 1152: 단어의 개수 (0) | 2022.12.04 |
[파이썬, Python] 백준 2675: 문자열 반복 (0) | 2022.12.02 |
[파이썬, Python] 백준 10809: 알파벳 찾기 (0) | 2022.12.01 |
[파이썬, Python] 백준 11720: 숫자의 합 (0) | 2022.11.30 |