📝 문제
> 알파벳 대소문자로 된 단어가 주어지면, 이 단어에서 가장 많이 사용된 알파벳이 무엇인지 알아내는 프로그램을 작성하시오. 단, 대문자와 소문자를 구분하지 않는다. 가장 많이 사용된 알파벳이 여러 개 존재하는 경우에는 ?를 출력한다.
https://www.acmicpc.net/problem/1157
🎨 풀이
💡 성공 코드
s = str(input())
s = s.upper()
alphabet = ['A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z']
max = 0
max_alpha = ''
for i in range(26):
tmp = s.count(alphabet[i])
if max == tmp :
if max_alpha != 0:
max_alpha = '?'
elif max < tmp :
max = tmp
max_alpha = alphabet[i]
print(max_alpha)
>
1. 문자열 s를 입력받는다.
2. s 문자열을 대문자로 통일시킨다.
- 문제에서 대소문자 구분하지 않는다고 했기 때문에 뭐로 통일 시키든지 상관없는데, 출력 형태가 대문자라서 대문자로 통일시켰다.
3. for문을 26번 반복한다 (알파벳 하나씩 다 검사하려고)
4. s에서 해당 알파벳을 count 한 후 그 횟수를 tmp에 넣는다.
- s.count(alphabet[i]) => s.count('A') , s.cound('B'), ...
5. max와 tmp를 비교했을 때 수가 같고 max_alpha가 비어있는 게 아니라면 max_alpha를 ?로 바꿔준다.
- 가장 많이 사용된 알파벳이 여러개 존재하는 경우 대비
6. 만약 max보다 tmp가 크다면 max에 tmp 값을 넣고, max_alpha를 해당 알파벳으로 바꾼다.
7. for문이 끝난 후 max_alpha를 출력해주면 된다.
끝~
⭐ 느낀점
> 오늘 말을 좀 어렵게했나 싶기도 하다. ㅠㅠ 말을 조리있게 잘 하고 싶은데 쉽지가 않다. 코드가 좀 복잡한가? 험,,,, 모르겠더 나도 내가 응원하는 선수처럼 멋진 사람이 되고싶은데,, 내 노트북은 팬이 헛돌고,,, 나는 내 코드 설명도 잘 못하고 있는 기분도 든다. 시험을 위해 밤을 새야하겠지 또,, 파이팅해보자잉 지금은 힘들더라도 나중에는 분명 웃을걸?! 그럴거다~
'알고리즘 공부 > 백준' 카테고리의 다른 글
[백준] 1152번 - 단어의 개수 (파이썬) (0) | 2022.06.17 |
---|---|
[백준] 2675번 - 문자열 반복 (파이썬) (0) | 2022.06.16 |
[백준] 10809번 - 알파벳 찾기 (파이썬) (0) | 2022.06.14 |
[백준] 11720번 - 숫자의 합 (파이썬) (0) | 2022.06.13 |
[백준] 11654번 - 아스키 코드 (파이썬) (0) | 2022.06.12 |