본문 바로가기
  • < / >
Algorithm/Beakjoon

[백준] 1157 (python)

by JunMango 2022. 10. 23.
글 읽기

 

문제

알파벳 대소문자로 된 단어가 주어지면, 이 단어에서 가장 많이 사용된 알파벳이 무엇인지 알아내는 프로그램을 작성하시오. 단, 대문자와 소문자를 구분하지 않는다.

 

입출력 예시


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

댓글