반응형
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
- 심화1
- 입문
- 구현
- greedy
- 백준
- 친절한 설명
- 알고리즘
- Python
- 파이썬
- C 언어
- 그리디
- 10807
- 문자열
- C Programming
- 코드엔진
- Implemention
- c언어
- C
- Baekjoon
- 10926
- 초보
- VS
- implement
- HTML
- 문제풀이
- 설명
- 정리
- CSS
- Beakjoon
- 꾸준히
Archives
- Today
- Total
안경잡이 구루루
백준 1157 ( 단어 공부 ) [ Python ] 본문
반응형
https://www.acmicpc.net/problem/1157
나:
word = input()
ws = word.lower()
a = sorted(set(ws))
alpha= []
high = 0
ouput = 0
for i in a:
if ws.count(i) >= high:
high = ws.count(i)
alpha.append(high)
output = i
else:
pass
if alpha.count(max(alpha)) >= 2:
print('?')
else:
print(output.upper())
완성된 코드는 위와 같다.
word = input()
ws = word.lower()
a = sorted(set(ws))
alpha= []
high = 0
ouput = 0
대소문자로 이루어진 알파벳을 word 변수에 입력받는다. 예제 입력2를 보면 알 수 있듯이 알파벳의 개수를 셀때는
대소문자 구별 없이 같은걸로 취급하기 때문에 구하기 편하게 ws 변수에 소문자로 변환시켜서 대입한다.
a 변수에는 set를 이용해 사용된 알파벳이 겹치지 않게 저장한다.
alpha에는 high 보다 이상인 값들이 들어가게 된다. output은 출력하게될 알파벳을 나타낸다.
for i in a:
if ws.count(i) >= high:
high = ws.count(i)
alpha.append(high)
output = i
else:
pass
위 코드는 For 반복문을 이용해서 각 알파벳들의 개수를 구하는 과정이다.
set를 통해 겹치지 않게 알파벳이 저장된 변수 a의 각 요소를 i에 대입하고 이때 입력받은 문자열에서의 그 i의 개수를 high 값과 비교, 즉 알파벳중 가장 개수가 많은 것과 비교를 해서 output을 구한다.
이때 가장많이 사용된 알파벳이 2개 이상인 경우를 따져야 하기 때문에 alpha에 구한 high값들을 넣는다.
if alpha.count(max(alpha)) >= 2:
print('?')
else:
print(output.upper())
모든 high값들 중 가장 높은 값 max(alpha) 의 개수가 2개 이상인 경우는 가장많이 사용된 알파벳이 2개 이상이라는것을
의미하기 때문에 '?'를 출력한다. 이외의 경우에는 아까 구한 output의 값을 대문자로 출력한다.
다른사람들
반응형
'파이썬(Python) > 문제풀이(백준,BaekJoon)' 카테고리의 다른 글
백준 2530 (인공지능 시계) [Python] (0) | 2023.03.30 |
---|---|
백준 1152 ( 단어의 개수 ) [ Python ] (0) | 2020.07.04 |
백준 2675 ( 문자열 반복 ) [ Python ] (0) | 2020.07.04 |
백준 10809 ( 알파벳 찾기 ) [ Python ] (2) | 2020.06.30 |
백준 11720 ( 숫자의 합 ) [ Python ] (2) | 2020.06.30 |