[백준] 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. 여러개 존재 시 ?
- 출력을 대문자로 해야하고, 소문자와 대문자를 구분하지 않으므로 upper()함수를 사용해 입력받은 문자열을 대문자로 변환해준다.
- 각 문자의 개수를 구하기 위해 set()으로 중복을 제거해준다.
- 반복문을 통해 입력받은 문자열에 대해, count()로 2.의 문자가 몇개 존재하는지 구해주고 빈 문자열인 d에 저장해준다.
- 이후 조건문으로 가장 많이 사용된 알파벳이 여러개라면 ?를 출력하고 아니라면 해당 문자열을 출력한다.
4-1.d.count(max(d))
에서 max(d)로 가장 많이 사용된 문자를 구하고 이의 개수가 1이상이면 많이 사용된 알파벳이 여러개가 된다.
4-2.s2[d.index(max(d))]
마찬가지로 가장 많이 사용된 문자를 구하고, 리스트에서 d.index로 그 위치를 구한다.. 이후 2.의 배열에서 해당 값을 출력해준다
Author And Source
이 문제에 관하여([백준] 1157번 : 단어 공부 (파이썬)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@yj_lee/백준-1157번-단어-공부-파이썬저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)