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 |
Tags
- Python
- 백준 3차원 막대기 연결하기
- 직장인인간
- 코딩테스트
- 백트래킹
- 문자열
- 딥러닝 바이블 후기
- 스택
- 패캠챌린지
- 파이썬 기초부터 시작하는 딥러닝 영상인식 바이블 Online 강의
- 패스트캠퍼스후기
- 코테
- 직장인자기계발
- 삼성
- 백준 19950
- 패스트캠퍼스
- 백준 학교 탐방하기
- 백준 23289
- 프로그래머스
- 직장인인강
- 해쉬
- 파이썬
- 백준
- 백준 9019
- MST
- 그리디
- 파이썬 기초부터 시작하는 딥러닝 영상인식 바이블 Online 강의 후기
- 최단거리
- 온풍기 안녕!
- 삼성 코테
Archives
- Today
- Total
programmingu
[코딩연습/문자열][백준]단어 공부 본문
'백준'에서 문제를 풀었다.
자세한 문제는 아래 링크 참조
1157번: 단어 공부
알파벳 대소문자로 된 단어가 주어지면, 이 단어에서 가장 많이 사용된 알파벳이 무엇인지 알아내는 프로그램을 작성하시오. 단, 대문자와 소문자를 구분하지 않는다.
www.acmicpc.net
주어진 단어에서 가장 많이 사용된 알파벳이 무엇인지 알아보는 프로그램을 만든다. 가장 많이 사용된 알파벳이 하나가 아니면 ?를 출력한다.
문제에서 대문자와 소문자의 구분 없이 개수를 세라고 제시했다. 그래서 입력 문자열을 출력 형식인 대문자로 모두 바꿔주고 시작했다.
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)