문제
알파벳 대소문자로 된 단어가 주어지면, 이 단어에서 가장 많이 사용된 알파벳이 무엇인지 알아내는 프로그램을 작성하시오. 단, 대문자와 소문자를 구분하지 않는다.
첫째 줄에 이 단어에서 가장 많이 사용된 알파벳을 대문자로 출력한다. 단, 가장 많이 사용된 알파벳이 여러 개 존재하는 경우에는 ?를 출력한다.
풀이
먼저, 입력받을 문자열은 대소문자 구분이 없고 정답은 대문자로 출력해야 하기 때문에 입력과 동시에 upper을 통하여 대문자로 바꿨다.
알파벳 별로 사용 횟수를 세기 위하여 count라는 list를 사용하여 횟수를 셌다.
마지막으로 count에서 max 값을 찾아줬는데, max 값이 같은 경우가 있는지 확인하여 check라는 변수를 이용했다.
check가 false이고, max 값과 같은 경우에는 check를 true로 변경하여 존재한다고 체크 했다.
max 값이 바뀌는 경우에는, check를 false로 초기화하고 해당 index를 저장하여 마지막에 출력하였다.
좀 더 짧고 깔끔하게 코드를 짤 수 있을거 같은데 아직 파이썬 공부 2일차라서 기본 라이브러리 함수를 모르기에 코드가 길어진 것 같다..
코드
더보기
s = input().upper()
count = [0 for i in range(26)]
for c in s:
count[ord(c)-ord('A')] += 1
maxCount = -1
check = False
index = 0
for i in count:
if check == False and maxCount == i:
check = True
if maxCount < i:
maxCount = i
check = False
ansIndex = index
index += 1
ans = chr(ord('A') + ansIndex)
if check == False:
print(ans)
else:
print('?')
'Old > 백준' 카테고리의 다른 글
백준 14890번 경사로 // C++ (0) | 2020.02.14 |
---|---|
백준 14500번 테트로미노 // C++ (0) | 2020.02.14 |
백준 2675번 문자열 반복 // Python (0) | 2020.01.23 |
백준 10809번 알파벳 찾기 // Python (0) | 2020.01.22 |
백준 11654번 아스키 코드 // Python (0) | 2020.01.22 |