www.acmicpc.net/problem/1157

 

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~배열 마지막 인덱스까지

+ Recent posts