Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 패스트캠퍼스후기
- 직장인인강
- 직장인자기계발
- 코딩테스트
- 백준 학교 탐방하기
- 삼성
- 패캠챌린지
- 그리디
- 삼성 코테
- 최단거리
- 스택
- 파이썬 기초부터 시작하는 딥러닝 영상인식 바이블 Online 강의 후기
- 백준
- Python
- 백준 9019
- 파이썬
- 해쉬
- 딥러닝 바이블 후기
- 온풍기 안녕!
- 패스트캠퍼스
- 코테
- 백준 19950
- 백준 23289
- 백트래킹
- 파이썬 기초부터 시작하는 딥러닝 영상인식 바이블 Online 강의
- 프로그래머스
- MST
- 직장인인간
- 백준 3차원 막대기 연결하기
- 문자열
Archives
- Today
- Total
programmingu
[코딩연습/문자열][백준]단어 공부 본문
'백준'에서 문제를 풀었다.
자세한 문제는 아래 링크 참조
주어진 단어에서 가장 많이 사용된 알파벳이 무엇인지 알아보는 프로그램을 만든다. 가장 많이 사용된 알파벳이 하나가 아니면 ?를 출력한다.
문제에서 대문자와 소문자의 구분 없이 개수를 세라고 제시했다. 그래서 입력 문자열을 출력 형식인 대문자로 모두 바꿔주고 시작했다.
sorted를 이용해 문자열을 정렬한다. 이때 s.sort()를 사용해도 된다.
(그러면 원본 문자열이 바뀐다. sorted는 형식이 list로 반환되는데 s.sort는 그렇지 않아서 상황에 따라 사용하면 좋을 것 같다.)
나머지는 아래 코드를 참조하면 된다. 부족한 설명은 시간이 있을 때 추가하겠다.
s = input().upper() # 모두 대문자로 바꾼다
s_sorted = sorted(s)
count_max = 0 # 현재까지 가장 많은 알파벳이 몇번 나왔는지
many = 0 # 가장 많은 알파벳의 개수
i = 0
while i < len(s_sorted):
count = s_sorted.count(s_sorted[i])
if count > count_max:
count_max = count
many = 1
Alphabet=s_sorted[i]
elif count == count_max:
many += 1
i = i + count
if many > 1:
print('?')
else:
print(Alphabet)