알파벳 대소문자로 된 단어가 주어지면, 가장 많이 사용된 알파벳을 알아내는 프로그램을 만든다.
이때 , "대소문자 구분 x"
예를 들어 "Happy"를 입력했을 때 가장 많이 사용된 알파벳인 p의 대문자 P가 출력되어야한다.
string = input().upper()
string_list = list(set(string))
alphabet = []
for i in string_list:
count = string.count(i)
alphabet.append(count)
if alphabet.count(max(alphabet)) >1 :
print("?")
else :
print(string_list[(alphabet.index(max(alphabet)))])
1.
먼저 문자열 입력을 받고 모두 대문자로 바꿔버린다 .
string = input().upper()
2.
그 다음 중복인 문자를 제거해준다. 이때 set() 개념이 사용되는 set는 순서가 없고 중복된 요소를 허용하지 않는 가변(mutable) 컬렉션 입니다. 하지만 set는 리스트와 다른 형태이므로 관리하기 편하게 list형태로 바꿔줍니다.
3.
그리고, 각 알파벳이 몇번 사용되었는지 그 수를 기록한 alphabet 리스트를 생성합니다.
만약 HAPPY 문자열을 입력했다고 가정했을 때,
string = "HAPPY" / string_list = ["H","A","P","Y"] / alphabet=[ ] 인 상태일 것 입니다.
4.
그리고 string_list에 관해서 string_list를 순회하며 각 요소가 string에서는 몇번 사용되었는지 count 변수에 담습니다.
ex) 이때 i의 값으로는 "H", "A","P","Y"가 들어올 수 있으며 , 첫 반복 회에서 i에는 "H"가 들어오고 string에 i가 몇번 들어있는지 count() 함수를 통해 센 다음에 그 횟수를 count에 기록해둡니다. (1번)
그리고 그 횟수(1번)를 리스트에 기록합니다. 이 과정을 각 요소에 대해서 반복하면 alphabet = [1,1,2,1] 의 상태가 될 것 입니다.
5. 마지막으로 만약, alphabet의 max값이 1개를 초과한다면 물음표(?)를 출력합니다.만약 1개라면, 횟수가 최대값인 인덱스의 string_list값을 꺼내어 반환합니다.
ex) string = "HAPPPY"string_list= ["H","A","P","Y"] alphabet=[1,1,3,1]max(alphabet) = 3 alphabet.index(max(alphabet)) = 2 (3의 index는 2) string_list[alphabet.index(max(alphabet))] = string_list[2] 즉, P가 출력된다.
'파이썬' 카테고리의 다른 글
백준 2577번 숫자의 개수 (파이썬) (0) | 2024.03.07 |
---|---|
백준 1330번 두 수 비교하기 (파이썬) (0) | 2024.03.07 |
백준 1152번 단어의 개수 (파이썬) (0) | 2024.03.05 |
백준 1000번 A+B (파이썬) (0) | 2024.03.05 |
파이썬 알고리즘 공부,,, (0) | 2024.03.05 |