티스토리 뷰
https://www.acmicpc.net/problem/1157
👩💻처음 짰던 코드 : 시간초과☠️
s = input().upper()
res = [0 for _ in range(len(s))]
for i in range(0, len(s)):
res[i] = s.count(s[i])
if(list(set(res)).count(max(res)) >1):
print("?")
else:
print(s[str(res).find(str(max(res)))])
s = input().upper()
# 대소문자를 구분하지 않기 때문에 입력받은 문자열을 대문자 처리해줌
res = [0 for _ in range(len(s))]
# 문자열의 길이와 같은 크기의 리스트(res)을 만들어 준 후, 0으로 채움
for i in range(0, len(s)):
res[i] = s.count(s[i])
# 리스트 각 자리에 문자열에서 각 알파벳의 개수를 넣어줌
if(list(set(res)).count(max(res)) >1):
print("?")
# 가장 많이 있는 알파벳이 2개 이상이면 "?" 출력
else:
print(s[str(res).find(str(max(res)))])
# 가장 많이 등장하는 알파벳 출력
# find함수로 가장 높은 숫자의 위치의 -> 알파벳 값 출력
시간초과가 났다..
👩💻다시 짠 코드 : 성공🌈
sen = str(input().upper())
freq = []
for char in set(sen):
count = sen.count(char)
freq.append([count, char])
freq.sort(reverse = True)
if(len(freq)>1 and freq[0][0] == freq[1][0]):
print("?")
else:
print(freq[0][1])
sen = str(input().upper())
freq = []
for char in set(sen):
count = sen.count(char)
freq.append([count, char])
# freq 리스트에 [알파벳 개수, 알파벳] 추가
freq.sort(reverse = True)
# 내림차순으로 정렬
if (len(freq)>1 and freq[0][0] == freq[1][0]):
print("?")
# 내림차순으로 정렬 되었을 때, 첫번 째 알파벳의 개수와 두 번째 알파벳의 개수가 같다면 "?"출력
else:
print(freq[0][1])
✨Point✨
list에 append 시 list도 추가 가능!
🚀결과🚀
'🦖 Programming > Python' 카테고리의 다른 글
[Python] 백준 알고리즘 10870번 : 피보나치 수 5 (0) | 2022.08.25 |
---|---|
[Python] 백준 알고리즘 18870번 : 좌표 압축 (0) | 2022.08.21 |
[Python] find() 함수 (0) | 2022.07.07 |
[Python] 백준 알고리즘 4344번 : 평균은 넘겠지 (0) | 2022.07.06 |
[Python] 특수문자 출력하기 (0) | 2022.06.30 |
댓글