글 읽기
문제
알파벳 대소문자로 된 단어가 주어지면, 이 단어에서 가장 많이 사용된 알파벳이 무엇인지 알아내는 프로그램을 작성하시오. 단, 대문자와 소문자를 구분하지 않는다.
입출력 예시
python
a = input().lower()
list = list(set(a)) #반복문을 위해 단어의 중복을 지운다.
list_count=[]
for i in list:#각각의 단어 마다 for문
count = a.count(i)#a 안에 i 가 몇개 있는지 센다.
list_count.append(count) #list_count에 각 문자열 마다 센 개수를 넣어준다.
#현재 리스트 상황
#Ex)banana
#a='banana'
#list=['b','a','n']
#list_count=[1,3,2]
if list_count.count(max(list_count)) >=2: #list_count 안에 max가 두개 이상이면 '?'출력
print('?')
else:
print(list[list_count.index(max(list_count))].upper())
#저는 이 부분이 가장 헷갈렸는데요. 반복문을 돌릴때 문자열의 순서를 그대로 입력 받기 때문에
#list의 요소들과 list_count의 요소들은 짝이 지어집니다.
#즉, index 요소들이 같다는 뜻이죠
#그래서 max(list_count)의 요소를 index()값으로 받아 올 수 있는 것입니다.
- count( ) 는 문자열안에서의 ( )안에서의 특정한 요소의 개수를 세고 그 숫자를 가져오기 위해 쓴다. 문자열에만 가능한것은 아니다.
- .index( ) 는 몇번째 요소에 있는지 확인하기 위해 쓴다. (0,1,2,3,4,5...)
.count( ) 함수 예제
print('Banana'.count('a)) #출력 3
list=[1,2,3,4,5,5,5]
print(list.count(5)) #출력 3
'Algorithm > Beakjoon' 카테고리의 다른 글
[백준] 2908 (python) (0) | 2022.11.09 |
---|---|
[백준] 1152 (python) (0) | 2022.10.24 |
[백준] 2747 (C++) (0) | 2022.10.22 |
[백준] 11720 (python) (0) | 2022.10.21 |
[백준] 11654 (python, C++) (0) | 2022.10.20 |
댓글