Mississipi -> ?
zZa -> Z
z -> Z
baaa -> A
input 값 = "aAabbc"
list1 = input().upper()
words = list(set(list1))
listnum = []
for i in words:
cnt = list1.count(i)
listnum.append(cnt)
if listnum.count(max(listnum)) > 1 :
result = "?"
else :
maxindex = listnum.index(max(listnum))
result = words[maxindex]
print(result)
>>> A
list1 = input().upper)
받을 단어를 전부 대문자로 바꾼다
words = list(set(list1))
중복알파뱃을 없애고, count를 쓰기 위해 만들어둔 list
listnum = []
알파벳의 갯수를 담을 공간
for i in words:
words에 있을 갯수만큼 반복하며 i는 A,B,C
cnt = list.count(i)
list1의 알파벳 갯수를 셀건데 대상은 words(i)
listnum.append(cnt)
listnum에 구해진 cnt를 담는다
if listnum.count(max(listnum)) > 1: result = "?"
만일 listnum에 담긴 값중 최댓값이 1보다 크다면 result = "?"
else : maxindex = listnum.index(max(listnum))
아니라면 listnum에 있는 값의 가장 큰 값의 인덱스를 구하고,
result = words[maxindex]
result 는 words의 인덱스
words변수에서 쓰인 list(set("변수명"))를 쓰게 되면, 중복값을 제외한 list형식을 변수에 담아주는 것
for i in words: i의 값은 A,B,C 이 나오지만, 반복횟수는 세번이다 len이나 range에 너무 구애받지 말자
if listnum.count(max(listnum)) >1
중복값을 어떻게 걸러낼지 생각을 길게 하였는데, 이러한 방법이 있었다. 생각을 좀 더 논리적으로 다가가는습관을 길러보자
알고리즘 문제를 풀면서 각 함수의 응용이 정말 중요하다는 것을 깨달았다.