[백준] 1157번 : 단어 공부 (파이썬)




문제





나의 답안

s=input().upper()
s2=list(set(s))
d=[]
for i in s2:
    d.append(s.count(i))

if d.count(max(d))>1:
    print('?')
else:
    print(s2[d.index(max(d))])

#1. 소문자, 대문자 구분x
#2. 많이 사용된 알파벳 구하기
#3. 해당 알파벳 출력
#4. 여러개 존재 시 ?
  1. 출력을 대문자로 해야하고, 소문자와 대문자를 구분하지 않으므로 upper()함수를 사용해 입력받은 문자열을 대문자로 변환해준다.
  2. 각 문자의 개수를 구하기 위해 set()으로 중복을 제거해준다.
  3. 반복문을 통해 입력받은 문자열에 대해, count()로 2.의 문자가 몇개 존재하는지 구해주고 빈 문자열인 d에 저장해준다.
  4. 이후 조건문으로 가장 많이 사용된 알파벳이 여러개라면 ?를 출력하고 아니라면 해당 문자열을 출력한다.
    4-1. d.count(max(d)) 에서 max(d)로 가장 많이 사용된 문자를 구하고 이의 개수가 1이상이면 많이 사용된 알파벳이 여러개가 된다.
    4-2. s2[d.index(max(d))] 마찬가지로 가장 많이 사용된 문자를 구하고, 리스트에서 d.index로 그 위치를 구한다.. 이후 2.의 배열에서 해당 값을 출력해준다

좋은 웹페이지 즐겨찾기