1157번: 단어 공부
알파벳 대소문자로 된 단어가 주어지면, 이 단어에서 가장 많이 사용된 알파벳이 무엇인지 알아내는 프로그램을 작성하시오. 단, 대문자와 소문자를 구분하지 않는다.
www.acmicpc.net
s = input().lower() # 입력을 소문자로 변환
# 배열에 count값으로 a~z값을 넣어줌
arr = []
for i in range(97, 123):
arr.append(s.count(chr(i)))
cnt = 0 # 최대값의 수를 세는 변수
index = 0 # 인덱스의 값을 저장해두기위한 용도
for i,x in enumerate(arr): # enumerate 는 해당 count구한 a~z 에 인덱스를 부여 i = 0 , x = 배열 끝 마지막 인덱스를 의미
if x == max(arr): # 인덱스 끝까지 탐색하여 max(arr) 랑 같다면 ex) [0,3,1,2,3] 3 == 3
cnt+=1 # 최대값 수 +1
index = i # 해당 인덱스 위치를 index에 저장한다.
# arr배열에서 값이 최대값 수가 두개이상인 것이 있을떈 ?
if cnt>1:
print('?')
# 1개이하라면 'a' + 가장큰 수의 인덱스를 더해서 출력한다.(단, 대문자 이므로 upper() 사용)
else:
print(chr(97+index).upper())
어려웠어서 다시 풀어야할 문제!
이거 풀땐 upper(), lower(), enumerat()함수를 몰랐어서 어려웠다.
enumerate() : 해당 count를 구한 a~z에 인덱스를 부여해준다. 0~배열 마지막 인덱스까지
'알고리즘 > [BAEKJOON] - class1' 카테고리의 다른 글
[Python] Baekjoon - 1546번 : 평균 (0) | 2021.01.30 |
---|---|
[Python] Baekjoon - 1330번 : 두 수 비교하기 (0) | 2021.01.30 |
[Python] Baekjoon - 1152번 : 단어의 개수 (0) | 2021.01.30 |
[Python] Baekjoon - 1008번 : A/B (0) | 2021.01.30 |
[Python] Baekjoon - 1000번 : A-B (0) | 2021.01.30 |