코딩테스트
[백준/Python] 단어 공부 1157
다트네
2021. 10. 22. 23:27
단어공부
문제
알파벳 대소문자로 된 단어가 주어지면, 이 단어에서 가장 많이 사용된 알파벳이 무엇인지 알아내는 프로그램을 작성하시오. 단, 대문자와 소문자를 구분하지 않는다.
입력
첫째 줄에 알파벳 대소문자로 이루어진 단어가 주어진다. 주어지는 단어의 길이는 1,000,000을 넘지 않는다.
출력
첫째 줄에 이 단어에서 가장 많이 사용된 알파벳을 대문자로 출력한다. 단, 가장 많이 사용된 알파벳이 여러 개 존재하는 경우에는 ?를 출력한다.
예제 입력 1 예제 출력 1
Mississipi ?
예제 입력 2 예제 출력 2
zZa Z
코드리뷰
word = input().upper()
word_list = list(set(word))
cnt = []
for i in word_list:
count = word.count
cnt.append(count(i))
if cnt.count(max(cnt)) > 1:
print("?")
else:
print(word_list[(cnt.index(max(cnt)))]
- upper 메소드를 사용하여 전체 문자를 대문자로 변환하여 변수에 저장
- 비교를 하기 위해 set함수를 사용하여 중복된 문자값을 제거한 후 변수에 저장
- for문을 이용하여 알파벳이 사용된 횟수를 리스트에 저장
- if 문을 사용하여 출력문을 작성하고, 알파벳이 사용된 갯주 중 1보다 크면 물음표를 출력
- 최대값이 하나라면 숫자 리스트 중에서 가장 큰 수의 위치를 index로 찾아 인덱스에 위치한 문자열을 출력
1. upper(), lower() 함수
- 문자열.upper(), 문자열 모두 대문자로 변환
- 문자열.lower(), 문자열 모두 소문자로 변환
2. set 함수
중복 삭제
3. index()
리스트에서 원하는 값의 인덱스번호 찾기
브론즈1은 조금 어렵다ㅠ
이 문제가 조금 어려운건지 문자열 관한 함수에 아직 미흡하다
앞으로 문자열을 집중적으로 공부해야겠다.